2012-01-30 75 views
1

我有一个正则表达式验证3个连续的数字。新的RegExp不起作用

/^\d{3}$/.test("12345") // false 
/^\d{3}$/.test("123") // true 

如何将此正则表达式模式转换为RegExp对象?

我想:

var re = new RegExp("\\d{3}", "gi"); 

re.test("12345")返回true

我在做什么错?

回答

5
var re = new RegExp("^\\d{3}$", "gi"); 

(我承担的 “GI” 标志是不是在这种情况下,真的有必要...)

http://jsfiddle.net/GyZqw/

2

使用正则表达式:

^\d{3}$ 

开始和指定行尾。

在JavaScript中,你应该逃脱\字符,即:

"^\\d{3}$" 
+0

史迪威不工作:VAR重新=新的RegExp(“^ \ d { 3} $“,”gi“);的console.log(re.test( “123”));返回false – Catalin 2012-01-30 07:53:17

+1

@RaraituL,'^ \ d {3} $'它是正则表达式。当然,你应该在你的环境中逃避它。在JavaScript中它会是'^ \\ d {3} $'。 – 2012-01-30 07:55:09

1
var re = new RegExp("^\\d{3}$"); 
2
new RegExp("^\\d{3}$", "gi") 

你忘了^和$