Apabila memadankan rentetan yang mengandungi aksara beraksen (diakritik), JavaScript memberikan cabaran disebabkan pengendalian Unikodnya. Berikut ialah pendekatan untuk menangani perkara ini:
Kaedah ini menyusahkan dan tidak fleksibel, kerana ia memerlukan penyenaraian secara manual semua aksara beraksen yang disokong:
var accentedCharacters = "àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ"; var regex = "^[a-zA-Z" + accentedCharacters + "]+,\s[a-zA-Z" + accentedCharacters + "]+$";
Pendekatan ini sepadan dengan hampir semua perkara, kerana kelas titik (.) membenarkan mana-mana aksara kecuali baris baharu:
var regex = /^.+,\s.+$/;
Kaedah ini menggunakan julat aksara Unikod untuk memadankan aksara Latin beraksen:
/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/
Pendekatan ketiga menggunakan julat Unicode ialah disyorkan, kerana ia sepadan dengan semua aksara Latin dengan aksen yang berkaitan dengan huruf besar pengguna dan mengelakkan aksara yang tidak perlu atau padanan yang berlebihan.
Untuk memadankan semua Unikod aksen, pertimbangkan untuk menggunakan ungkapan ringkas ini:
[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 [ ] ^ \ × ÷
Atas ialah kandungan terperinci Bagaimana untuk Memadankan Aksara Beraksen dalam Ungkapan Biasa JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!