javascript - 正则表达式句点匹配

标签 javascript regex

我知道 . 可以匹配正则表达式中的任何字符,但我对这些结果有点困惑,希望有人能解释它们:

".".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/

相关文章:

javascript - 使用 Javascript 在点击时隐藏和显示 <ul> 和 <li>

c# - 在 AsyncFileUpload 上传完成时启用按钮

java - Rhino,从多个javascript文件添加代码

javascript - 在 IE8 中打印谷歌地图打印和使用 'page-break-before' 时出现问题

c# - 如何评估 C# 中的自定义括号表达式?

javascript - 正则表达式在 JavaScript 中经过测试和工作,但在 Google Sheets REGEXEXTRACT 中中断

php - 正则表达式中的 "~"是什么?

ruby-on-rails - Rails 正则表达式电子邮件验证,不允许使用空格

python - 如何从 Pandas 的地址中提取公寓

javascript - AngularJS - 从base64下载文件