一个jquery验证器方法,不接受纯数字或纯特殊字符,但如果有字母就接受?

时间:2016-05-11 01:38:55

标签: javascript jquery regex

确切地说,如果用户输入“123”,则这是无效的,因为输入上不存在字母。但是如果用户输入“D123”,则这是有效的,因为输入上存在字母。要做到这一点,我可以使用这个

jQuery.validator.addMethod ("numbernot",function(value, element)
{
return this.optional(element) || /^(?![0-9]*$)[a-zA-Z0-9 ]+$/i.test(value);
}, "INVALID");

但该方法的问题是,不允许使用特殊字符,如何才能使其接受特殊字符和 - 仅限。 如果用户输入“-'--”,则上述规则相同,因为它是一个纯粹的特殊字符,但是如果用户输入“-'D-”,这是有效的,因为它上面有一个字母。

另一个也是最后一个问题,我也想让它接受另一种语言,就像日语单词“こんにちは”。谢谢,如果我的问题太残酷,我很抱歉。

1 个答案:

答案 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]+$/
  1. 向前看,看看ascii字母或日文字符
  2. 消费\w(ascii字母数字)或日语字符,或-',限制为带有锚点的整个字符串。
  3. regex demo // 日本unicode改编自here