gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 04:56:35 24 4
gpt4 key购买 nike

var ck_login = new RegExp("/^[a-zA-Z]{5,12}$/");
var ck_password = new RegExp("/^(?=.*\d)(?=.*[a-z]).{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>

我正在尝试进行表单验证,其中登录名必须至少有 5 个字符且不超过 12 个字符,密码必须至少有 6 个字符,至少不超过 16 个字符。至少有一个小数和一个数字。

正则表达式是正确的,但它在 JavaScript 中无法正常工作。我找不到我犯了什么错误。

谢谢。

最佳答案

不要使用 RegExp 构造函数创建正则表达式。

这样做:

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

如果要使用 RegExp 构造函数,请勿在字符串的开头使用斜杠。

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

关于javascript - 使用 setCustomValidity 在 javascript 中进行正则表达式验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42501706/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com