我想验证一个文本框,以确保只能添加字符和Unicode字符。例如,以下内容有效:
Gräfelfing
Gießen
München
但这些应该是无效的:
Gräfelfing123
Gießen!@#$
München123#@#
我知道如何使用验证方法验证字符:
jQuery.validator.addMethod("lettersonly", function(value, element) {
return this.optional(element) || /^[a-zA-Z]+$/i.test(jQuery.trim(value));
}, "Letters only please");
但是如何为此添加Unicode字符验证?请提前帮助,谢谢。
*更新*
我在这个问题的帮助下尝试了一个解决方案 - Regular expression to match non-English characters。
但它不起作用:
jQuery.validator.addMethod("lettersonly", function(value, element) {
return this.optional(element) || /^[a-zA-Z\u0000-\u0080]+$/i.test(jQuery.trim(value));
}, "Letters only please");
答案 0 :(得分:2)
Javascript缺少内置字符classe"所有基于拉丁语的字母都带有diactrics"所以你必须自己决定你真正想要接受的内容。
例如:
这些都是"非英语(或更正确:非拉丁语)的字母"毕竟。
在你决定之后:
示例
要在代码中检查允许的字符列表中添加diactrics,您可以使用/^[a-zA-Z\u0080-\u024F]+$/i
这将涵盖
这应涵盖大部分使用过的diactrics,并且您将提供所有示例 根据需要混合搭配。