当匹配包含重音字符(变音符号)的字符串时,JavaScript 由于其 Unicode 处理而面临挑战。以下是解决此问题的方法:
此方法麻烦且不灵活,因为它需要手动列出所有支持的重音字符:
var accentedCharacters = "àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇßØøÅåÆæœ"; var regex = "^[a-zA-Z" + accentedCharacters + "]+,\s[a-zA-Z" + accentedCharacters + "]+$";
此方法匹配几乎任何内容,因为点 (.) 类允许除换行符之外的任何字符:
var regex = /^.+,\s.+$/;
此方法利用 Unicode 字符范围来匹配带重音的拉丁字符:
/^[a-zA-Z\u00C0-\u017F]+,\s[a-zA-Z\u00C0-\u017F]+$/
使用 Unicode 范围的第三种方法是 推荐,因为它匹配所有带有与用户情况相关的重音的拉丁字符,并避免不必要的字符或过度匹配。
用于匹配所有 Unicode重音,请考虑使用这个简化的表达式:
[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 [ ] ^ \ × ÷
以上是如何匹配 JavaScript 正则表达式中的重音字符?的详细内容。更多信息请关注PHP中文网其他相关文章!