jQuery验证程序addMethod中的正则表达式
我的jQuery验证器自定义方法需要一些正则表达式。第一个我认为很简单的方法是将用户名限制为只有字母、数字,并且没有特殊字符。我想出了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
^[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 );