私はこれに真剣に夢中になっていて、ここで何が起こっているのかを理解しようとすることにすでに不釣り合いな時間を費やしています。だから私に手を貸してください=)
JavaScriptで文字列の正規表現マッチングを行う必要があります。残念ながら、それは非常に奇妙に動作します。このコード:
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>");
}
}
最初の2つの要素に対して「cat」と「dog」を返す必要がありますが、その後、一部のexec()
-callがnull
。を返し始めます。理由がわかりません。
ここにフィドルを投稿しました。ここで、コードを実行および編集できます。
そしてこれまで、ChromeとFirefoxでこれを試しました。
乾杯!
/クリストファー
"I have a cat and a dog too."
するようです