简单正则表达式的问题

Eto*_* B. 2 javascript regex escaping

我在验证规则中有以下正则表达式:

^[a-zA-Z0-9',!;?~>+&\"\-@#%*.\s]{1,1000}$
Run Code Online (Sandbox Code Playgroud)

但是,我可以输入======我认为不应该被允许的内容.

我的想法是,不管怎样,-如果没有适当地逃脱,可能会造成麻烦,但这种情况已经超出我的想象.

cod*_*ict 5

你通过-转义向我们展示的正则表达式不接受===.
但如果-没有逃脱,===将被接受.看到这个.

一个-正则表达式里面是特殊的,作为经营者的范围,如果它不逃了出来,是由参与的最小和最大范围内的字符包围:

[a-z] 匹配任何小写字符.

[-az]匹配a -aor z.

[az-]匹配a -aor z.

[a\-z]匹配a -aor z.

[a-c-d-f]匹配abc-def.第一个和最后一个-作为范围操作符,但中间的一个字符串处理.

在你的情况下,=它在范围内"-@,因此得到匹配.