无法使JavaScript密码正则表达式验证工作
Cannot get JavaScript password regex validation to work
我正在验证用户输入的密码。它只能是字母和数字,我必须使用match方法…即使这不是最好的方法……我必须使用match()。我错过了一些东西,使工作正常。没有数字或特殊字符,只有字母。我对javascript了解不多。
<script type="text/JavaScript">
function chkPwd() {
var pwd = document.form1.pwd;
var pwdMsg = document.getElementById('pwdMsg');
regex = /[^a-zA-Z]/;
var pwd1 = pwd.value;
if(!pwd1.match(regex)) {
pwdMsg.innerHTML = "Must contain letters only!"
pwd.select();
return;
}else{
pwdMsg.innerHTML = "";
}
}
</script>
</head>
<body>
<form name="form1" action="" method="post">
<p> Password: <br>
<input type="text" name="pwd" onchange="chkPwd()" />
<span id="pwdMsg"></span></p>
<p>
<input type="button" value="chkPass" onclick="chkPwd()">
</p>
</form>
<div id="results"></div>
</body>
</html>
您的问题似乎在这段代码中。
regex = /[^a-zA-Z]/;
var pwd1 = pwd.value;
if(!pwd1.value.match(regx)) {
您将pwd1
设置为pwd.value
,但下一行您将访问pwd1.value
。这意味着您正在有效地执行pwd.value.value
。此外,您在应该使用regex
的地方使用了regx
。此外,您的if条件似乎不需要其中的!
。我认为你是有意的。
regex = /[^a-zA-Z]/;
var pwd1 = pwd.value;
if(pwd1.match(regex)) {
如果你只想要字母,你应该使用这个正则表达式:
^[A-Za-z]+$
如果你想要字母和数字,那么使用:
^[A-Za-z0-9]+$
顺便说一句,正如大家指出的那样,你使用的是regx
而不是regex
相关文章:
- Javascript中的正则表达式验证
- javascript正则表达式验证未按预期工作
- 使用 JavaScript 正则表达式验证每个列表项一个字母的逗号列表
- 在提交时检查正则表达式验证,如果为空,则聚焦所有输入字段
- 如何使用正则表达式验证单字母域名
- Javascript正则表达式验证
- 使用javascript进行正则表达式验证
- 使用正则表达式验证特定范围
- 如何使用正则表达式验证 JavaScript 中的自定义 URL
- 使用正则表达式验证电子邮件地址
- 使用正则表达式验证网址
- 使用正则表达式验证加拿大邮政编码
- javascript 正则表达式验证列表以逗号分隔
- 使用原型进行正则表达式验证
- HTML 正则表达式验证在十进制输入上仅限制一个句点
- 用于 excel 文件上传 jQuery 的正则表达式验证代码
- 两个不同 URL 的正则表达式验证表单
- 正则表达式验证 - 域电子邮件地址
- 正则表达式验证
- 时间格式的 JavaScript 正则表达式验证问题