以下是我的regular expression
方法。
$.validator.addMethod("regex", function (element, value, regexp) {
var re = new RegExp(regexp);
return this.optional(element) || re.test(value);
}, "Special Characters not permitted");
以下是我的rules
。
var rules = {
cname: {
required: true,
minlength: 8
//alphanumeric:true
//regex: "/^\w+$/i"
//uniqueCompnameName: true
}
}
当我将正则表达式传递给regex时,它根本不起作用。
答案 0 :(得分:2)
尝试使用正则表达式将正则表达式作为字符串
传递$.validator.addMethod("regexp", function (value, element, regexp) {
if (typeof regexp == 'string') {
regexp = new RegExp(regexp);
}
return this.optional(element) || regexp.test(value);
}, "Special Characters not permitted");
然后
name1: {
required: true,
regexp: '/^\w+$/'
},
name2: {
required: true,
regexp: /^\w+$/i
}
演示:Fiddle
答案 1 :(得分:1)
请注意,\w
与[a-zA-Z0-9_]
相同。现在,对于正则表达式,你真的在这里寻找:
^[A-Za-z0-9]{8,}$
这就是说任何字符的长度最少为8个字符。
最后,当将正则表达式传递给函数时,你想要像这样传递它:
regex: '^[A-Za-z0-9]{8,}$'
然后在构建RegExp
时,要将标志作为第二个参数传递:
var re = new RegExp(regexp, 'i');