我看过Stack Overflow(替换字符......呃,JavaScript如何不遵循关于RegExp的Unicode标准等)并且没有真正找到问题的具体答案:
How can JavaScript match for accented characters (those with diacritical marks)?
我强迫UI中的字段匹配格式:( last_name, first_name
最后[逗号空间]),我想提供对变音符号的支持,但显然在JavaScript中它比其他语言/平台要困难一些.
这是我的原始版本,直到我想添加变音支持:
/^[a-zA-Z]+,\s[a-zA-Z]+$/
目前我正在讨论增加支持的三种方法之一,所有这些我都经过测试和工作(至少在某种程度上,我真的不知道第二种方法的"范围"是什么).他们来了:
var accentedCharacters = "àèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ";
// Build the full regex
var regex = "^[a-zA-Z" + accentedCharacters + "]+,\\s[a-zA-Z" + accentedCharacters + "]+$";
// Create a RegExp from the string version
regexCompiled = new RegExp(regex);
// regexCompiled = /^[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ]+,\s[a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ]+$/
Run Code Online (Sandbox Code Playgroud)
accentedCharacters
..
字符类,以获得更简单的表达式:var regex = /^.+,\s.+$/;
Run Code Online (Sandbox Code Playgroud)
something, something
.那我觉得好吧......我正在研究比较字符串的例程,但为了提高效率,我需要删除所有不是字母或数字的字符.
我现在正在使用多种REPLACE
功能,但也许有更快更好的解决方案?