2012-01-30 56 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") 

你忘了^和$