Beim Abgleichen von Zeichenfolgen mit Akzentzeichen (diakritischen Zeichen) stellt JavaScript aufgrund seiner Unicode-Verarbeitung Herausforderungen dar. Hier sind Ansätze, um dieses Problem zu beheben:
Diese Methode ist umständlich und unflexibel, da sie eine manuelle Auflistung aller unterstützten Zeichen mit Akzent erfordert:
var accentedCharacters = "àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ"; var regex = "^[a-zA-Z" + accentedCharacters + "]+,\s[a-zA-Z" + accentedCharacters + "]+$";
Dieser Ansatz passt zu fast allem, da die Punktklasse (.) jedes Zeichen außer Zeilenumbrüchen zulässt:
var regex = /^.+,\s.+$/;
Diese Methode verwendet einen Unicode-Zeichenbereich, um akzentuierte lateinische Zeichen abzugleichen:
/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/
Der dritte Ansatz, der den Unicode-Bereich verwendet, ist empfohlen, da es alle lateinischen Zeichen mit Akzenten abgleicht, die für den Benutzerfall relevant sind, und unnötige Zeichen oder übermäßige Übereinstimmungen vermeidet.
Zur Übereinstimmung aller Unicodes Wenn Sie Akzente setzen möchten, sollten Sie diesen vereinfachten Ausdruck verwenden:
[A-zÀ-ú] // accepts lowercase and uppercase characters [A-zÀ-ÿ] // as above, including letters with an umlaut (includes [ ] ^ \ × ÷) [A-Za-zÀ-ÿ] // as above but not including [ ] ^ \ [A-Za-zÀ-ÖØ-öø-ÿ] // as above, but not including [ ] ^ \ × ÷
Das obige ist der detaillierte Inhalt vonWie werden Akzentzeichen in regulären JavaScript-Ausdrücken abgeglichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!