我正在尝试验证用户输入的密码。它只能是字母和数字,我必须使用 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
。此外,您正在使用 regx
,而您应该使用 regex
。另外,您的 if 条件似乎不需要 !
。我认为您打算这样做。
regex = /[^a-zA-Z]/;
var pwd1 = pwd.value;
if(pwd1.match(regex)) {
关于javascript - 无法让 JavaScript 密码正则表达式验证生效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25234255/