Страница входа в HTML и Javascript (специальные символы)

Я пытаюсь создать страницу входа, которая не позволяет использовать специальные символы в имени пользователя.

Я проделал некоторую работу и у меня есть основной план, но я продолжаю получать сообщение об ошибке в строке 35 (else часть кода). Может кто-нибудь может сказать мне, что я делаю не так?

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
    < -- Login Page -- >
    <head>
        <meta name="login" content="text/html" charset="UTF-8"/>
        <script type="text/javascript">

            function checkSpecial(){
                var x = document.special.uname.value;

                //document.getElementById("pwd").innerHTML;

                //if (true){alert("getting the username "+ x);}

                regExp=/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_@*]/; 
                if(rexExp.test(x)) {
                    { alert("Succesfull Login") }

                    else {
                        alert("Error: Invalid Username. Username may not inlcude ANY special characters.")
                    }

                    return;
                }
            }
        </script>
    </head>
    <br>
    <br>
    <body>
        <form name="special" onsubmit="return checkSpecial()">
            Username: <input id="username" type="text" name="uname"/> <br>
            Password: <input id="pwd" type="password" name="pword"/> <br>

            <input type="Submit" id="login" name="Login"/>
        </form>
    </body>
</html>

1 ответ

Решение

Ваш if У оператора слишком много скобок.

Попробуй это:

function checkSpecial() {
 var x = document.special.uname.value;
 regExp=/[abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_@*]/; 
 if(rexExp.test(x)) {
  alert("Succesfull Login");
 } else {
  alert("Error: Invalid Username. Username may not inlcude ANY special characters.");
 }
 return;
}

Кроме того, хорошей практикой является добавление точки с запятой в конце всех ваших утверждений, даже если это последнее. При программировании вы хотите, чтобы все было правильно, прежде чем пытаться свести к минимуму код. Просто немного из моего опыта. ^^

Другие вопросы по тегам