Ich habe einen regulären JavaScript-Ausdruck, der im Grunde Wörter aus zwei Buchstaben findet. Das Problem scheint darin zu liegen, dass akzentuierte Zeichen als Wortgrenzen interpretiert werden. Tatsächlich scheint es, dassWie kann ich einen regulären Ausdruck erstellen, der akzentuierte Zeichen berücksichtigt?
eine Wortgrenze („\ b“) ist ein Punkt zwischen zwei Zeichen, die ein „\ w“ auf einer Seite davon und ein „\ W“ auf den andere haben Seite (in beliebiger Reihenfolge), Zählen der imaginären Zeichen aus den Anfang und das Ende der Zeichenfolge als passend zu einem "\ W". AS3 RegExp to match words with boundry type characters in them
Und da
\ w entspricht jede alphanumerical Zeichen (Wort-Zeichen) einschließlich Striche (kurz für [a-zA-Z0-9_]). \ W entspricht jedem Nicht-Wortzeichen (kurz für [^ a-zA-Z0-9_]) http://www.javascriptkit.com/javatutors/redev2.shtml
offensichtlich akzentuierte Zeichen nicht berücksichtigt werden. Dies wird zu einem Problem mit Wörtern wie Montréal
. Wenn é
als Wortgrenze betrachtet wird, ist al
ein aus zwei Buchstaben bestehendes Wort. Ich habe versucht, meine eigene Definition einer Wortgrenze zu machen, die akzentuierte Zeichen erlauben würde, aber das Sehen als eine Wortgrenze ist nicht einmal ein Zeichen, ich weiß nicht genau, wie man es findet.
Irgendwelche Hilfe?
Hier ist der relevante Code JavaScript, die userInput
sucht und findet zwei-Buchstaben-Wörter, die re_state
regulären Ausdruck:
var re_state = new RegExp("\\b([a-z]{2})[,]?\\b", "mi");
var match_state = re_state.exec(userInput);
document.getElementById("state").value = (match_state)?match_state[1]:"";
das nichts geändert hat ... – Shawn
Ja, das type-Attribut ist nicht einmal in HTML5, wie es isn Es wird nicht von Browsern unterstützt, es ist ein Fehler, den Leute gemacht haben, wenn sie die Spezifikation interpretieren. Das Charset-Meta-Tag funktioniert, aber Zeichen in Links ist keine echte Sache. –
@Rich Bradshaw: Ich habe in meinem Kopfabschnitt. Meinst Du das? – Shawn