为什么|匹配正则表达式中的每个字符串

时间:2013-09-17 04:44:00

标签: javascript regex

我无法理解下面的代码:

var reg=/|/;

reg.test('ssdws');//returns true no matter what the string parameter is.

我知道结果,但为什么?

2 个答案:

答案 0 :(得分:5)

/|/表示<empty string><empty string>,实际上是指<empty string>的模式。

由于在2个字符之间,在第一个字符之前,在最后一个字符之后或在空字符串中有无限多个空字符串,/|/.test(input)将为任何字符串返回true

如果要匹配文字字符|,则需要将其转义,即/\|/。然后/\|/.test(input)将返回true ,当且仅当输入字符串中有|时。

答案 1 :(得分:2)

|在正则表达式中表示“或”。所以你有效地说“任何事情或任何事情”

这当然意味着什么。