我无法理解下面的代码:
var reg=/|/;
reg.test('ssdws');//returns true no matter what the string parameter is.
我知道结果,但为什么?
答案 0 :(得分:5)
/|/
表示<empty string>
或<empty string>
,实际上是指<empty string>
的模式。
由于在2个字符之间,在第一个字符之前,在最后一个字符之后或在空字符串中有无限多个空字符串,/|/.test(input)
将为任何字符串返回true
。
如果要匹配文字字符|
,则需要将其转义,即/\|/
。然后/\|/.test(input)
将返回true
,当且仅当输入字符串中有|
时。
答案 1 :(得分:2)
|
在正则表达式中表示“或”。所以你有效地说“任何事情或任何事情”
这当然意味着什么。