2

我无法理解下面的代码:

var reg=/|/;

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

我知道结果,但为什么呢?

4

2 回答 2

5

/|/表示<empty string>OR <empty string>,实际上表示 的模式<empty string>

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

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

于 2013-09-17T05:37:59.930 回答
2

|正则表达式中的“或”的意思。所以你实际上是在说“任何事情或任何事情”

这当然意味着任何事情都会发生。

于 2013-09-17T04:47:14.943 回答