什么?= ^表示正则表达式?

时间:2013-10-07 15:36:00

标签: javascript regex

我想写一个regexp,允许一些特殊的字符,如#-.,它应至少包含一个字母。我想了解下面的事情:

/(?=^[A-Z0-9. '-]{1,45}$)/i

在这个正则表达式中?=^的含义是什么? regexp中的子表达式是什么?

2 个答案:

答案 0 :(得分:8)

(?=)是一个先行者,它在字符串中向前看,看它是否匹配而没有实际捕获它

^表示它在输入的BEGINNING处匹配(例如,使用字符串a test^test将不匹配,因为它不以“test”开头,即使它包含它)

总的来说,您的表达式表示必须^开始,$结束您的角色组{1,45}中存在的1-45 [A-Z0-9. '-]项(不区分大小写{ {1}})。在这种情况下它是一个先行的事实只是意味着它不会捕获任何东西(零长度匹配)。

答案 1 :(得分:6)

?=是一个积极的前瞻

Read more on regex