我知道 .
可以匹配正则表达式中的任何字符,但我对这些结果有点困惑,希望有人能解释它们:
".".match("[+-\/]") //matches
".".match("[+\-\/]") //matches
".".match("[+\/]") //null
".".match("[\+\/]") //null
".".match("[-\/]") //null
".".match("[+-]") //null
+-\/
有什么神奇之处导致 JS 出现“是的,这看起来像一个句点。”?
最佳答案
+
的ASCII码是43,/
是47。
[+-\/]
匹配+
和/
之间的字符范围:+
, ,
, -
, .
, /
.;所以 .
是匹配的。
转义 -
在这里没有效果。
"[+\-\/]" == "[+-/]" // => true.
如果你只想匹配+
,-
,你应该使用正则表达式文字(/[+\-\/]/
), /
。或者,转义 \
本身:"[+\\-/]"
(如果使用字符串文字,则不需要转义 /
)
关于javascript - 正则表达式句点匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19603246/