4
var str = "1405199610";
var re = new RegExp("\d{10}");
var myArray = re.test(str);
myArray false!正則表達式.test總是返回false
這怎麼可能?我使用在線正則表達式檢查器對其進行了測試,檢查結果正常。當我在控制檯或jsfiddler中嘗試它時,它不起作用。我錯過了什麼嗎?
var str = "1405199610";
var re = new RegExp("\d{10}");
var myArray = re.test(str);
myArray false!正則表達式.test總是返回false
這怎麼可能?我使用在線正則表達式檢查器對其進行了測試,檢查結果正常。當我在控制檯或jsfiddler中嘗試它時,它不起作用。我錯過了什麼嗎?
var re = new RegExp("\\d{10}");
你需要躲避\
當通過RegExp()
對象創建的正則表達式
...還不要忘了逃走\本身,而使用新的RegExp(」模式「)符號,因爲\也是字符串中的轉義字符。
謝謝你們。我真的需要更多有關這些事情的經驗。他們往往很混亂! –
如果您在Chrome控制檯中鍵入'new RegExp(「\ d {10}」)',您將看到您的表達式變爲'/ d {10} /'。爲什麼?因爲''''是字符串中的轉義字符,'\ d'是無效的轉義序列,所以它變成'd'。如果你想創建一個文字''''''''''''''''''''''''' –
'myArray'對於一個包含布爾值的變量來說可能是一個令人誤解的名字! –