简体   繁体   English

使用setCustomValidity在javascript中进行正则表达式验证

[英]Regex validation in javascript with setCustomValidity

 var ck_login = new RegExp("/^[a-zA-Z]{5,12}$/"); var ck_password = new RegExp("/^(?=.*\\d)(?=.*[az]).{6,16}$/"); function validate(){ var login = document.getElementById("login").value; var loginErr = document.getElementById("login"); var password = document.getElementById("password").value; var passwordErr = document.getElementById("password"); if (ck_password.test(password) == false) { passwordErr.setCustomValidity('Password must have at least 6 characters at least no more than 16. At least one low and one number'); return false; } if (ck_login.test(login) == false) { loginErr.setCustomValidity('Login must have at least 5 characters and no more than 12'); return false; } return true; } 
 <form action="" method="post" onSubmit="return validate();"> <label>Username:</label> <input type="text" name="login" id="login" required="required"> <label>Password:</label> <input type="text" name="password" id="password" required="required"> <input type="submit"> </form> 

I am trying to do form validations where Login must have at least 5 characters and no more than 12 and Password must have at least 6 characters at least no more than 16. At least one low and one number. 我正在尝试进行表单验证,其中Login必须至少有5个字符且不超过12个,而Password必须至少有6个字符,至少不超过16个。至少有一个低和一个数字。

Regex is correct but it's not working in javascript properly. 正则表达式是正确的,但它不能正常使用javascript。 I can't find what mistake I am doing. 我找不到我在做什么错。

Thanks. 谢谢。

Do not create regular expressions using the RegExp constructor. 不要使用RegExp构造函数创建正则表达式。

Do it like this: 像这样做:

var ck_login = /^[a-zA-Z]{5,12}$/;
var ck_password = /^(?=.*\d)(?=.*[a-z]).{6,16}$/;

If you are going to use the RegExp constructor, don't use slashes at the beginning-end of the string. 如果要使用RegExp构造函数,请不要在字符串的开头使用斜杠。

var ck_login = new RegExp("^[a-zA-Z]{5,12}$");
var ck_password = new RegExp("^(?=.*\d)(?=.*[a-z]).{6,16}$");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM