Ich bin ernsthaft verrückt danach und habe bereits unverhältnismäßig viel Zeit damit verbracht, herauszufinden, was hier vor sich geht. Also bitte hilf mir =)
Ich muss einige RegExp-Übereinstimmungen von Zeichenfolgen in JavaScript durchführen. Leider verhält es sich sehr seltsam. Dieser Code:
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>");
}
}
Gibt "Katze" und "Hund" für die ersten beiden Elemente zurück, wie es sein sollte, aber dann exec()
kehren einige Anrufe zurück null
. Ich verstehe nicht warum.
Ich habe hier eine Geige gepostet , in der Sie den Code ausführen und bearbeiten können.
Und bis jetzt habe ich dies in Chrome und Firefox versucht.
Prost!
/ Christofer
"I have a cat and a dog too."
, wie es scheint