有关正则表达式模式的说明

时间:2012-03-01 11:36:49

标签: javascript regex

 var rxDatePattern = new RegExp("^(?:\\d*\\.\\d{" + no + "})$");

这是常规的exp模式,用于接受十进制后的3位数字值。值存储在变量no .... 这工作正常,但我有点不理解模式,任何人都可以帮我模式.. 感谢

2 个答案:

答案 0 :(得分:3)

^$分别是字符串开头和结尾的锚点。在这种情况下,它们使正则表达式匹配一个完整的字符串,而不仅仅是一个子字符串。

\d代表单个数字,而\d*由于*量词,是一系列至少为零的数字。然后跟随一个文字点,再次匹配,一个点(.)和一个可变数字的数字,例如\d{3}

正则表达式包含\\d而不是\d的原因是\也是JavaScript中字符串的转义字符。因此,要在字符串中包含的正则表达式中包含字面反斜杠,您必须将反斜杠转义一次,因此正则表达式引擎会看到实际的反斜杠。

最后所有这些都包含在非捕获组(?:...)中,尽管我不太明白为什么。它在这种情况下没有效果,也可以省略。

因此对于no = 2,这将匹配像

这样的字符串
1.23
123.45
.00

但不是像

这样的字符串
.123
1.123
5.3
2
1.

答案 1 :(得分:0)

第一个\ d *是说“很多数字或0之前”。“” 然后\ d {3}(3是var no的值)就是说“3之后的数字”。“”)

起始“^”和结尾“$”是说“正是这种模式”