2013-01-25 3 views
0

자바 스크립트 정규식에 문제가 있습니다. 이 웹 사이트에서 테스트 해본 결과 잘 작동합니다 (http://www.pagecolumn.com/tool/regtest.htm).정규식이 제대로 작동하지 않습니다.

그러나 내 웹 사이트에서이 코드를 실행하려고하면 작동하지 않습니다. 콘솔 반환 'null'과 나는 이유를 모르겠습니다. 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

자바 스크립트에서는 약간 다릅니다. 특히 exec 메소드는 while 루프에서 호출되어 모든 일치 항목을 얻기 위해'null'이 반환 될 때까지 호출되어야합니다. –

관련 문제