Javascript 正则表达式在不应该的情况下匹配逗号

标签 javascript regex firefox google-chrome

我无法弄清楚 Firefox 7.0.1 和 Google Chrome 14.0.835.202 中出现的这个 javascript 小问题(我没有测试过任何其他版本)。为什么 /[+-.]/g 除了匹配加号 (+)、破折号 ( -) 和句点 (.)?

// Firebug
>>> "Hello, World++--..".match(/[+-.]/g);
[",", "+", "+", "-", "-", ".", "."]
>>> "Hello, World".match(/[+-.]/g);
[","]

// Chrome Developer Tools:
> "Hello, World++--..".match(/[+-.]/g);
  [",", "+", "+", "-", "-", ".", "."]
> "Hello, World".match(/[+-.]/g);
  [","]

好吧,也许我需要转义句点 (.)

// Firebug
>>> "Hello, World!".match(/[+-\.]/g);
[","]

// Chrome Developer Tools
> "Hello, World!".match(/[+-\.]/g);
  [","]

没有。但是,如果我更改加号 (+) 和破折号 (-) 的顺序,它就会停止匹配逗号 (,)。

// Firebug
>>> "Hello, World".match(/[-+.]/g);
null

// Chrome Developer Tools
> "Hello, World".match(/[-+.]/g);
  null

这对我来说毫无意义。 Firefox 和 Chrome 共享相同的正则表达式错误似乎很奇怪。有谁知道这是为什么?

最佳答案

使用[+\-.]

- 屏蔽一个范围并且必须转义。

关于Javascript 正则表达式在不应该的情况下匹配逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7894442/

相关文章:

javascript - 在选择更改时打开新标签 - 仅适用于 Chrome

regex - 使用正则表达式过滤器作为 aws cloudwatch 日志指标过滤器

javascript - 在终端中使用imacros运行JS

javascript - 在带有图像的某些 div 中水平滚动而不是垂直滚动?

javascript - 为什么我们在React中创建类组件时要扩展React.Component?

javascript - 如何在不调用 onclick 的情况下在新窗口中打开链接

Javascript Regex 仅适用于数字且无空格

java - 如何从字符串中删除所有非字母数字字符而不删除@符号

css - 在 div 中向左浮动在 IE7 中不起作用,但在 Firefox 和 IE8 中起作用

java - 嵌入式 Jetty HTTP/2 不适用于 Firefox/Chrome,但似乎可以用于 Safari