2013-09-30 75 views
1

我正在Zend framework2中使用正則表達式進行客戶端驗證。測試類用於此目的,但沒有得到正確的結果 I M使用下列方式如何在javascript中使用regex.test類

var regex = new RegExp('/^[a-zA-Z0-9_-\s]{1,50}+$/'); 
console.log(regex.test(id_val)); 

,但它始終返回false。 有誰知道如何使用它?

+0

語法看起來不錯。 id_val的價值是什麼?將此添加到問題中。 – SBerg413

+2

使用'new'創建RegExp對象不會使用分隔符,而且兩個量詞也是錯誤的。 (您的瀏覽器的JS控制檯應該已經告訴過您後者了。) – CBroe

回答

1

從字符串文字中移除周圍的/,並且尾隨+。也可以通過@Bergi註釋\

var regex = new RegExp('^[a-zA-Z0-9_-\\s]{1,50}$'); 
regex.test('1'); // => true 

或者,使用正則表達式文本:

/^[a-zA-Z0-9_-\s]{1,50}$/.test('1'); // => true 

使用正則表達式文本,除非你需要生成正則表達式運行。

+2

...並轉義反斜槓。不,只是使用文字而不是構造函數。 – Bergi

+0

仍然我很困惑,如何封閉正則表達式在引號中,因爲它是以字符串的形式進入另一個頁面。 – Shahbaz

相關問題