确切地说,如果用户输入“123”,则这是无效的,因为输入上不存在字母。但是如果用户输入“D123”,则这是有效的,因为输入上存在字母。要做到这一点,我可以使用这个
jQuery.validator.addMethod ("numbernot",function(value, element)
{
return this.optional(element) || /^(?![0-9]*$)[a-zA-Z0-9 ]+$/i.test(value);
}, "INVALID");
但该方法的问题是,不允许使用特殊字符,如何才能使其接受特殊字符和 - 仅限。 如果用户输入“-'--”,则上述规则相同,因为它是一个纯粹的特殊字符,但是如果用户输入“-'D-”,这是有效的,因为它上面有一个字母。
另一个也是最后一个问题,我也想让它接受另一种语言,就像日语单词“こんにちは”。谢谢,如果我的问题太残酷,我很抱歉。
答案 0 :(得分:0)
/^(?=.*[a-zA-Z\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\u2605-\u2606\u2190-\u2195\u203B])[\w\-'\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\uFF00-\uFFEF\u4E00-\u9FAF\u2605-\u2606\u2190-\u2195\u203B]+$/
\w
(ascii字母数字)或日语字符,或-
或'
,限制为带有锚点的整个字符串。regex demo // 日本unicode改编自here