准确地说,如果用户输入“123”,这是无效的,因为输入中不存在字母。但如果用户输入“D123”,则这是有效的,因为输入中存在字母。为此,我可以使用这个
jQuery.validator.addMethod ("numbernot",function(value, element)
{
return this.optional(element) || /^(?![0-9]*$)[a-zA-Z0-9 ]+$/i.test(value);
}, "INVALID");
但该方法的问题是,不允许使用特殊字符,我怎样才能让它只接受特殊字符 ' 和 - 。 与上述规则相同,如果用户输入“-'--”,这是无效的,因为它是纯特殊字符,但如果用户输入“-'D-”,这是有效的,因为它上面有一个字母。
另一个也是最后一个问题,我也希望它接受另一种语言,让我们说一个日语单词,比如“こんにちは”。谢谢,如果我的问题太残酷,我很抱歉。
最佳答案
/^(?=.*[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]+$/
- 向前查看 ASCII 字母或日语字符
- 使用
\w
(ascii字母数字)或日语字符,或-
,或'
,限制为带有 anchor 的整个字符串。<
regex demo// 日语 unicode 改编自 here
关于javascript - jquery验证器方法不接受纯数字或纯特殊字符,但接受上面有字母的情况?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37151690/