2013-01-25 153 views
0

JavaScript正則表達式有問題。我已經在這個網站上測試它,它工作正常 - http://www.pagecolumn.com/tool/regtest.htm正則表達式不正確

 var str = "Stalowa Wola;Nisko;Rzeszow"; 
    var re = new RegExp("Stalowa Wola[a-zA-Z\W]*Rzeszow", "i"); 
    var myArray = str.match(re); 
    console.log(myArray); 

但是,當我試圖在我的網站上運行這段代碼,它不是working.Console回報「空」,我不知道爲什麼。我注意到,當我從RegExp中刪除'Rzeszow'時,它開始工作。

+0

但是你需要什麼來配合它呢? – VisioN

+0

預期結果是什麼? –

+1

您是否知道'[a-zA-Z \ W] *'(如果您正確地轉義了反斜槓)匹配除ASCII碼和下劃線之外的所有內容,即與[[0-9_]'相同? –

回答

2
var str = "Stalowa Wola;Nisko;Rzeszow"; 
var re = new RegExp("Stalowa Wola[a-zA-Z\\W]*Rzeszow", "i"); 
var myArray = str.match(re); 
console.log(myArray); 

您需要轉義反斜槓。

另外也可以使用這個符號:

var str = "Stalowa Wola;Nisko;Rzeszow"; 
var re = /Stalowa Wola[a-zA-Z\W]*Rzeszow/i; 
var myArray = str.match(re); 
console.log(myArray); 

的缺點是你必須知道的正則表達式的運行前的結構。

http://www.regular-expressions.info/javascript.html

+0

非常感謝,你的回答對我有幫助。我認爲我仍然有很多要了解RegExp。 –

+0

這在javascript中有點不同。值得注意的是,exec方法需要在while循環中調用,直到返回null來獲取所有匹配。 –