Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery验证程序addMethod中的正则表达式_Jquery_Regex_Jquery Validate - Fatal编程技术网

jQuery验证程序addMethod中的正则表达式

jQuery验证程序addMethod中的正则表达式,jquery,regex,jquery-validate,Jquery,Regex,Jquery Validate,我的jQuery验证器自定义方法需要一些正则表达式。第一个我认为很简单的方法是将用户名限制为只有字母、数字,并且没有特殊字符。我想出了^[a-zA-Z0-9]+$,但它似乎不起作用。可能是因为它在函数中的显示方式: $.validator.addMethod( "legalName", function(value, element) { return (element.value != "^[a-zA-Z0-9]+$"); }, "Use a v

我的jQuery验证器自定义方法需要一些正则表达式。第一个我认为很简单的方法是将用户名限制为只有字母、数字,并且没有特殊字符。我想出了
^[a-zA-Z0-9]+$
,但它似乎不起作用。可能是因为它在函数中的显示方式:

$.validator.addMethod(
    "legalName",
    function(value, element) {
        return (element.value != "^[a-zA-Z0-9]+$");
    },
    "Use a valid username."
);
第二种方法是验证密码,这与添加所需数量的特定字符(如大写字母、数字等)的限制基本相同。我想一旦我记下用户名RegEx,密码就不会太难了,只要在表达式中加入
{1}
之类的东西就行了

我问题的最后一部分是如何在原始
.addMethod
中添加第二个方法(“legalPassword”),还是需要创建一个完整的其他
$.validator.addMethod

$(document).ready(function() {
    $("#form1").validate({
        rules: {
            username: {
                legalName: true,
                required: true,
                maxlength: 35
            }
        },
    });
});
以及表格代码:

<form id="form1" method="post" action="">
  <div class="form-row"><span class="label">Username *</span><input type="text" name="username" /></div>
  <div class="form-row"><input class="submit" type="submit" value="Submit"></div>
</form>

尝试使用Regex.test函数对字符串进行检查

/^[a-zA-Z0-9]+$/.test( element.value );
查看此处了解更多信息:

尝试正则表达式掩码插件

浏览以下链接


返回此。可选(元素)| |/^[a-zA-Z0-9]+$/。测试(值)

您不应该对密码设置任何限制(最小长度、多种字符类型等除外)!由于您(希望)将它们存储为散列,因此没有理由这样做。我没有存储任何内容,只是为了演示,甚至不会对数据库进行验证。谢谢,但我更愿意学习如何在没有其他插件的情况下使其工作。我尝试替换
return(element.value!=“^[a-zA-Z0-9]+$”带有
/^[a-zA-Z0-9]+$/.测试(元素值)
但现在它在合法和非合法用户名上都返回false。element.value是否包含预期值?尝试使用硬编码字符串测试正则表达式,以确保它正常。正则表达式在我看来没问题。您的函数接受(value,element),但您正在测试element.value,对吗?根据测试,正则表达式工作正常。至于第二部分……我想是吗?哈哈,我对js/jquery还是相当陌生的。如果有帮助的话,我添加了我自己为表单验证和表单html编写的其余代码。我会尝试使用value参数而不是元素进行测试。Try://^[a-zA-Z0-9]+$/。test(value)我通过查看验证器源代码并模仿它们的代码解决了这个问题<代码>返回此。可选(元素)| |/^[a-zA-Z0-9]+$/。测试(值)如果你想改变你原来的帖子,我会把它标记为答案,因为你帮助我达到了这一点,每一次改变都使它更接近。谢谢
/^[a-zA-Z0-9]+$/.test( element.value );