我想使用一个正则表达式,它将允许
它将永远不允许像@,#,%等特殊字符.用这两种语言。
我尝试使用以下代码:
if (this.value.match(/[^a-zA-Z0-9 ]/g)) {
this.value = this.value.replace(/[^a-zA-Z0-9 ]/g, '');
}它适用于英文文本,但问题是,当我提供像éléphant这样的法文文本时,它将法语字符视为特殊字符,并删除法语字符。苏莱芬特变成了伊凡特。
是否有任何方法允许正则表达式中的法语字符?
提前谢谢。
发布于 2013-10-29 09:05:03
快速解决方案:
/[^a-zA-Z0-9 àâäèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]/参考资料:法语字符列表
希望这能有所帮助
发布于 2017-06-19 10:36:27
最简化的解决方案:
/[^a-zA-ZÀ-ÿ]/ (或)
/[\wÀ-ÿ]/ // Note: This will allow "_" also上述任何一个正则表达式都适用于您的情况。
发布于 2013-10-29 08:22:25
在替换字符之前,我建议使用正规化字符串。
这个示例是JAVA规范化,但也许这个例子可以帮助您使用javascript。
String string = "éléphante";
string = Normalizer.normalize(string, Normalizer.Form.NFD);
string = string.replaceAll("[^\\p{ASCII}]", "");
System.out.println(string.replaceAll("[^a-zA-Z0-9 ]", ""));https://stackoverflow.com/questions/19652188
复制相似问题