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

Why | matches every string in regex

本文关键字:字符串 正则表达式 为什么      更新时间:2023-09-26

我在理解下面的代码时遇到问题:

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

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

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

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

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

|在正则表达式中表示"或"。所以你实际上是在说"任何东西或任何东西"

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