javascript - 正则表达式接受 * 而不在模式中指定它

标签 javascript regex

开发 JavaScript 正则表达式时,我们发现了一些奇怪的行为。

对于以下模式:[\'-=]

接受字符*。 ('-= 也被接受,但这是预期的。)

我们可以用任何字符替换'='。如果我们改变模式字符的顺序,它就不再起作用了。

有人对此有想法吗?

最佳答案

模式中间的“-”字符是导致您出现问题的原因。 “-”字符在这样的字符组中是特殊的,表示“之间的所有字符”。因此,“'-=”表示“从“'”到“=”的所有字符。碰巧“*”在该范围内。

要修复它,请重新排序字符列表,使“-”位于末尾,或者用反斜杠引用它。

关于javascript - 正则表达式接受 * 而不在模式中指定它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294516/

相关文章:

python - 正则表达式不返回任何结果

c# - 正则表达式选择单词的一部分

python - 如何使用正则表达式获取函数声明或定义

regex - 如何处理 Perl 正则表达式中的特殊字符?

javascript - jquery - 在添加内容时转义引号问题

javascript - 在 Hapi.js 中提供静态 JavaScript 文件不起作用

regex - Grep未知数量的空格(Linux)

javascript - 有什么方法可以比较负0即。 -0 是从 Math.sign(-0) 返回的?

javascript - 如何 jasmine 测试 jQuery post ajax 属性(例如 url)

javascript - 如何限制用户从日期选择器中选择 2 个月/60 天之后的日期