<分区>
在使用正则表达式时,我发现了一个问题。任何人都可以为以下情况给出适当的理由
场景一
var regExp=/^[a-zA-Z0-9!-@#$^_:,. ]$/;
regExp.test('<')// True
场景 2
var regExp=/^[a-zA-Z0-9-!@#$^_:,. ]$/;
regExp.test('<')// false
感叹号在正则表达式中的位置发生了变化。
<分区>
在使用正则表达式时,我发现了一个问题。任何人都可以为以下情况给出适当的理由
场景一
var regExp=/^[a-zA-Z0-9!-@#$^_:,. ]$/;
regExp.test('<')// True
场景 2
var regExp=/^[a-zA-Z0-9-!@#$^_:,. ]$/;
regExp.test('<')// false
感叹号在正则表达式中的位置发生了变化。
最佳答案
第一个正则表达式
var regExp=/^[a-zA-Z0-9!-@#$^_:,. ]$/;
!-@
匹配字符范围。根据ASCII它包含的值 <
原因
a-z
- 火柴a
至 z
字符A-Z
- 火柴A
至 Z
字符0-9
- 火柴0
至 9
字符!-@
火柴!
至 @
人物#$^_:,.
将匹配字符第二个正则表达式
var regExp=/^[a-zA-Z0-9-!@#$^_:,. ]$/;
-
正常工作 -
字符则此正则表达式不匹配 <
原因
a-z
- 火柴a
至 z
字符A-Z
- 火柴A
至 Z
字符0-9
- 火柴0
至 9
字符-!@#$^_:,.
将匹配字符。希望你明白了
关于javascript - 正则表达式中的感叹号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47939244/