Lors de la correspondance de chaînes contenant des caractères accentués (diacritiques), JavaScript présente des défis en raison de sa gestion Unicode. Voici des approches pour résoudre ce problème :
Cette méthode est lourde et peu flexible, car elle nécessite de répertorier manuellement tous les caractères accentués pris en charge :
var accentedCharacters = "àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ"; var regex = "^[a-zA-Z" + accentedCharacters + "]+,\s[a-zA-Z" + accentedCharacters + "]+$";
Cette approche correspond à presque tout, car la classe point (.) autorise n'importe quel caractère à l'exception des nouvelles lignes :
var regex = /^.+,\s.+$/;
Cette méthode utilise une plage de caractères Unicode pour faire correspondre les caractères latins accentués :
/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/
La troisième approche utilisant la plage Unicode est recommandé, car il fait correspondre tous les caractères latins avec des accents pertinents pour le cas d'utilisation et évite les caractères inutiles ou les correspondances excessives.
Pour faire correspondre tous les Unicode accents, pensez à utiliser cette expression simplifiée :
[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 [ ] ^ \ × ÷
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!