Страница входа в 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;
}
Кроме того, хорошей практикой является добавление точки с запятой в конце всех ваших утверждений, даже если это последнее. При программировании вы хотите, чтобы все было правильно, прежде чем пытаться свести к минимуму код. Просто немного из моего опыта. ^^