正则表达式中的感叹号符号

时间:2017-12-22 09:45:06

标签: javascript jquery regex

在使用正则表达式时,我发现了一个问题。任何人都可以为下面的情景提供正确的理由

情景-1

var regExp=/^[a-zA-Z0-9!-@#$^_:,. ]$/;
regExp.test('<')// True

情景-2

var regExp=/^[a-zA-Z0-9-!@#$^_:,. ]$/;
regExp.test('<')// false

正则表达式中的感叹号位置发生了变化。

1 个答案:

答案 0 :(得分:2)

First Regex

var regExp=/^[a-zA-Z0-9!-@#$^_:,. ]$/;

!-@匹配字符范围。根据{{​​3}}值,它包含<

原因

  • a-z - 将az个字符匹配
  • A-Z - 将AZ个字符匹配
  • 0-9 - 将09个字符匹配
  • !-@!@个字符匹配
  • #$^_:,.字符将匹配

Second Regex

var regExp=/^[a-zA-Z0-9-!@#$^_:,. ]$/;

-正常工作-字符,此正则表达式不匹配<

原因

  • a-z - 将az个字符匹配
  • A-Z - 将AZ个字符匹配
  • 0-9 - 将09个字符匹配
  • -!@#$^_:,.个字符将匹配。

希望你明白了