正则表达式期间匹配

时间:2013-10-26 05:34:20

标签: javascript regex

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

".".match("[+-\/]") //matches
".".match("[+\-\/]") //matches
".".match("[+\/]") //null
".".match("[\+\/]") //null
".".match("[-\/]") //null
".".match("[+-]") //null

+-\/导致JS走向“是的,看起来像是一个时期。”这是多么神奇?

2 个答案:

答案 0 :(得分:4)

+的ASCII代码为43,/为47。

[+-\/]匹配+/之间的字符范围:+,-.,{{ 1}} .;所以/匹配。


转义.此处无效。

-

如果您只想匹配"[+\-\/]" == "[+-/]" // => true. /[+\-\/]/+,则应使用正则表达式文字(-)。或者,转义/本身:\(如果您使用字符串文字,则无需转义"[+\\-/]"

答案 1 :(得分:0)

比上面的答案稍微进一步,您可以使用此表达式[--/]更具体(而不是在包含其他可能性的+/之间进行匹配,仅在-/之间。

以下是我使用此功能的一个简单示例 - 将美元金额与小数相匹配(但未捕获货币符号):

表达式:\d+[--/]\d{2}

匹配类似:110.30

我只是将其添加为评论,但尚未足够的代表。