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

ben*_*min 6 javascript regex

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

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

角色*被接受.(',-,=也可以接受,但这预期.)

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

有人对此有所了解吗?

Poi*_*nty 10

模式中间的" - "字符是导致问题的原因." - "字符在这样的字符组中是特殊的,它意味着"所有字符之间".因此,"' - ="表示"所有字符来自""到"="."恰好"*"在该范围内.

要修复它,请重新排序字符列表,以便" - "在最后,或者用反斜杠引用它.


shi*_*t66 5

因为在这种情况下-意味着范围.在ASCII表中*'和.您的=pattenr也将匹配'和之间的所有其他字符=(例如数字).您可以在此处找到所有ASCII字符.
如果你想匹配' =,-你应该逃避减号.使用此模式:[\'\-=]