Javascript 在regexp中?=^是什么意思?
我想写一个regexp,它允许一些特殊字符,比如Javascript 在regexp中?=^是什么意思?,javascript,regex,Javascript,Regex,我想写一个regexp,它允许一些特殊字符,比如#-.,并且它应该至少包含一个字母。我也想了解以下事情: /(?=^[A-Z0-9. '-]{1,45}$)/i 在此regexp中,?=^的含义是什么?什么是regexp中的子表达式??=是正向前瞻 (?=)是一个向前看,它在字符串中向前看,看它是否匹配,而不是实际捕获它 ^表示它在输入的开头匹配(例如,与字符串一个test,^test将不匹配,因为它不以“test”开头,即使它包含它) 总的来说,您的表达式表示它必须以字符组中存在的1-45个
#-.
,并且它应该至少包含一个字母。我也想了解以下事情:
/(?=^[A-Z0-9. '-]{1,45}$)/i
在此regexp中,
?=^
的含义是什么?什么是regexp中的子表达式??=
是正向前瞻
(?=)
是一个向前看,它在字符串中向前看,看它是否匹配,而不是实际捕获它
^
表示它在输入的开头匹配(例如,与字符串一个test
,^test
将不匹配,因为它不以“test”开头,即使它包含它)
总的来说,您的表达式表示它必须以字符组中存在的1-45个
{1,45}
项开始和结束^
(不区分大小写/i
)。事实上,在本例中,它是在一个前瞻中,这意味着它不会捕获任何内容(零长度匹配)。您要查找的是前瞻(?=
)。请看,我不是想挑剔,但它只有在与括号一起使用时才会是一个前瞻:(?=)
@MariusSchulz是的,你是对的。这与所问的关于“=^”的含义的问题有关,我也应该解决^
,但是让OP从文档中多读一些不会有什么坏处