2013-01-25 114 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来获取所有匹配。 –