开发 JavaScript 正则表达式时,我们发现了一些奇怪的行为。
对于以下模式:[\'-=]
接受字符*
。 ('
、-
、=
也被接受,但这是预期的。)
我们可以用任何字符替换'='。如果我们改变模式字符的顺序,它就不再起作用了。
有人对此有想法吗?
最佳答案
模式中间的“-”字符是导致您出现问题的原因。 “-”字符在这样的字符组中是特殊的,表示“之间的所有字符”。因此,“'-=”表示“从“'”到“=”的所有字符。碰巧“*”在该范围内。
要修复它,请重新排序字符列表,使“-”位于末尾,或者用反斜杠引用它。
关于javascript - 正则表达式接受 * 而不在模式中指定它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9294516/