나는 이것에 대해 진지하게 미쳐 가고 있으며 나는 이미 여기서 무슨 일이 일어나고 있는지 파악하는 데 불균형 한 시간을 보냈습니다. 그러니 손 좀주세요 =)
JavaScript에서 문자열의 RegExp 일치를 수행해야합니다. 불행히도 매우 이상하게 작동합니다. 이 코드 :
var rx = /(cat|dog)/gi;
var w = new Array("I have a cat and a dog too.", "There once was a dog and a cat.", "I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.","I have a cat and a dog too.", "There once was a dog and a cat.");
for (var i in w) {
var m = null;
m = rx.exec(w[i]);
if(m){
document.writeln("<pre>" + i + "\nINPUT: " + w[i] + "\nMATCHES: " + m.slice(1) + "</pre>");
}else{
document.writeln("<pre>" + i + "\n'" + w[i] + "' FAILED.</pre>");
}
}
처음 두 요소에 대해 "cat"및 "dog"을 반환해야하지만 일부 exec()
호출은를 반환하기 시작 null
합니다. 이유를 모르겠습니다.
여기 에 코드를 실행하고 편집 할 수 있는 Fiddle을 게시했습니다 .
그리고 지금까지 Chrome과 Firefox에서 이것을 시도했습니다.
건배!
/ 크리스토퍼
"I have a cat and a dog too."
것 같습니다