Javascript jQuery验证未按预期工作

Javascript jQuery验证未按预期工作,javascript,jquery,regex,Javascript,Jquery,Regex,下面是我的正则表达式方法 $.validator.addMethod("regex", function (element, value, regexp) { var re = new RegExp(regexp); return this.optional(element) || re.test(value); }, "Special Characters not permitted"); 下面是我的规则 var rules = { cnam

下面是我的
正则表达式
方法

 $.validator.addMethod("regex", function (element, value, regexp) {
        var re = new RegExp(regexp);
        return this.optional(element) || re.test(value);
    }, "Special Characters not permitted");
下面是我的
规则

var rules = {
    cname: {
        required: true,
        minlength: 8
        //alphanumeric:true
        //regex: "/^\w+$/i"
        //uniqueCompnameName: true
    }
}

当我将正则表达式传递给正则表达式时,它根本不起作用。

因此请记住,
\w
将与
[a-zA-Z0-9_uz]
相同。现在,对于正则表达式,您可以在这里找到:

^[A-Za-z0-9]{8,}$

也就是说任何最小长度为8个字符的单词字符

最后,在将正则表达式传递到函数中时,您希望像这样传递它:

regex: '^[A-Za-z0-9]{8,}$'
然后,在构建
RegExp
时,您希望将标志作为第二个参数传递:

var re = new RegExp(regexp, 'i');

尝试使用正则表达式符号而不是字符串来传递正则表达式

$.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");
然后


演示:

您可以创建JSFIDLE或jsbin吗?链接到你正在使用的插件也不错。你的正则参数是错误的。。。它应该是“
”^\w+$”
我实际上在寻找一个不允许特殊字符的正则表达式。请告诉我,这里出了什么问题。正则表达式:“^[0-9]{10,}$”当只允许数字时。@theJava,看起来该正则表达式没有任何问题,但是如果您遇到问题,请发布一个包含所有详细信息的新问题。
        name1: {
            required: true,
            regexp: '/^\w+$/'
        },
        name2: {
            required: true,
            regexp: /^\w+$/i
        }