[英]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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.