簡體   English   中英

無法使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

暫無
暫無

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM