2016-03-15 86 views
0

我想用下面的正則表達式匹配一個字符串。 Jsfiddle按照預期返回匹配字符串的數組。但是如果我在瀏覽器控制檯中運行下面的語句,它將返回null。我嘗試了ie11,Chrome,Mozilla。有人可以解釋爲什麼這種差異?我錯過了什麼。java腳本string.match()不能按預期方式工作

"201458".match(/^20['^\s']{4,}$|^$/) 

回答

0

它不應該匹配。您正在尋找20後跟四個或更多的撇號,插入符號或空格字符(後跟字符串結尾); 1就是這些。

  • ['^]是「撇號或脫字號」。
  • [^']是「不是撇號」。

插入符徒有其特殊功能時在字符類的開始;撇號在正則表達式中沒有任何特殊功能。

如果你發現這個匹配jsfiddle,請鏈接上述小提琴;我會很驚訝。

+0

謝謝。我知道了。但想的是,我正確地在SQL Server數據庫中存儲了這個表達式XYZ.match(/^20 [^ \ s] {4,} $ |^$ /)。但是,當我檢索它並將表達式傳遞給瀏覽器JavaScript時,撇號正在像這樣添加。 XYZ.match(/^20 '^ \ S'] {4,} $ |^$ /)。我使用C#作爲中間層。請讓我知道如何防止這種情況。 – user3155497

+0

不知道更多:數據庫中具體是什麼,以及哪些代碼至少將其從數據庫和網頁中提取出來。 – Amadan

相關問題