2015-06-15 40 views
0

我有一個正在傳入我的代碼的正則表達式字符串,當我嘗試將其注入到RegExp對象構造函數中時,RegExp對象似乎正在添加字符。Javascript RegExp對象添加字符

原始字符串的正則表達式:

/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$/ 

調用new RegExp(正MyString的)之後;結果如下:

正則表達式:

/\/^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$\// 

我不能硬編碼在我的js文件中的字符串,所以我需要一種方法來完成這項工作。

回答

1

您不需要添加正則表達式分隔符。而且您必須再次避開反斜槓,因爲雙引號內的單個反斜槓將被視爲轉義序列。

var re = "^\\(?([0-9]{3})\\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$"; 
var reg = RegExp(re); 
+0

謝謝,我沒有使用雙引號,但分隔符的伎倆! – Stradosphere