Übereinstimmung von Nicht-ASCII-Zeichen in JavaScript-Regex mit Wortgrenzen
In JavaScript kann das RegExp-Objekt mit Wortgrenzen (b) übereinstimmen Einschränkungen beim Umgang mit Nicht-ASCII-Zeichen wie finnischen Vokalen (ä, ö und å). Um diese Zeichen genau zuzuordnen, müssen wir unseren Ansatz anpassen.
Bedenken Sie den folgenden Code:
<code class="javascript">var title = "this is simple string with finnish word tämä on ääkköstesti älkää ihmetelkö"; var searchterm = "äl"; if (new RegExp("\b" + searchterm, "gi").test(title)) { // This does not work for "äl" }</code>
Dieser Code versucht, den Begriff „äl“ im Titel mithilfe der b-Grenze zu finden . Dies schlägt jedoch fehl, da b Wortgrenzen basierend auf dem standardmäßigen 256-Byte-Bereich abgleicht, mit Ausnahme von Nicht-ASCII-Zeichen.
Lösung: Nicht erfassende Gruppe mit Wortgrenze
Um dieses Problem zu beheben, können wir b durch eine nicht einfangende Gruppe ersetzen, die explizit entweder dem Anfang der Zeichenfolge oder einem Leerzeichen entspricht:
<code class="javascript">if (new RegExp("(?:^|\s)" + searchterm, "gi").test(title)) { // Now it works for "äl" }</code>
Aufschlüsselung:
Dieser geänderte Code passt zum Begriff „äl“ im Titel, da er eine flexiblere Randbedingung für den Wortanfang definiert, die Nicht-ASCII-Zeichen enthält.
Das obige ist der detaillierte Inhalt vonWie ordne ich Nicht-ASCII-Zeichen Wortgrenzen in JavaScript Regex zu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!