Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在regexp中?=^是什么意思?_Javascript_Regex - Fatal编程技术网

Javascript 在regexp中?=^是什么意思?

Javascript 在regexp中?=^是什么意思?,javascript,regex,Javascript,Regex,我想写一个regexp,它允许一些特殊字符,比如#-.,并且它应该至少包含一个字母。我也想了解以下事情: /(?=^[A-Z0-9. '-]{1,45}$)/i 在此regexp中,?=^的含义是什么?什么是regexp中的子表达式??=是正向前瞻 (?=)是一个向前看,它在字符串中向前看,看它是否匹配,而不是实际捕获它 ^表示它在输入的开头匹配(例如,与字符串一个test,^test将不匹配,因为它不以“test”开头,即使它包含它) 总的来说,您的表达式表示它必须以字符组中存在的1-45个

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

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

在此regexp中,
?=^
的含义是什么?什么是regexp中的子表达式?

?=
是正向前瞻

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

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


总的来说,您的表达式表示它必须以字符组中存在的1-45个
{1,45}
项开始和结束
^
(不区分大小写
/i
)。事实上,在本例中,它是在一个前瞻中,这意味着它不会捕获任何内容(零长度匹配)。

您要查找的是前瞻
(?=
)。请看,我不是想挑剔,但它只有在与括号一起使用时才会是一个前瞻:
(?=)
@MariusSchulz是的,你是对的。这与所问的关于“=^”的含义的问题有关,我也应该解决
^
,但是让OP从文档中多读一些不会有什么坏处