JavaScript中电子邮件的验证
我不知道为什么正则表达式模式不起作用!我找不到任何错误!但是,当我用错误的输入运行它时,它只会跳过模式测试行并移动到下一页JavaScript中电子邮件的验证,javascript,Javascript,我不知道为什么正则表达式模式不起作用!我找不到任何错误!但是,当我用错误的输入运行它时,它只会跳过模式测试行并移动到下一页 <!DOCTYPE html> <html> <head> <title>Validation</title> <script> function validate() { var email=document.myform.ema
<!DOCTYPE html>
<html>
<head>
<title>Validation</title>
<script>
function validate()
{
var email=document.myform.email.value;
var pass=document.myform.pass.value;
var phno=document.myform.phno.value;
if(email!="" && pass!="" && phno!="")
{
var emailcheck=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
var passcheck=/(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}/;
var phonecheck=/^[0-9]{10}+$/;
var result1=emailcheck.test(email);
var result2=passcheck.test(pass);
var result3=phonecheck.test(phno);
}
else
{
alert("Validation failed");
return false;
}
if(result1 && result2 && result3)
{
alert("Validation Successful");
//return true;
}
else
{
alert("Validation Failed");
document.write("email should be as (xxx@gmail.com)"+"<br/>"+"password should be as (pass123)"+"<br/>"+"phone should be as (98659-57575)"+"<br/>");
return false;
}
}
</script>
</head>
<body>
<form name="myform" action="number.php" onsubmit="return validate()">
Email:<input type="text" name="email"/><br/>
Password:<input type="text" name="pass"/> <br/>
Phone:<input type="text" name="phno"/> <br/>
<input type="submit" value="submit"/>
</form>
</body>
</html>
如果我提供的任何输入与模式不匹配,我预计警报验证将失败。您的代码存在导致脚本失败的正则表达式错误。由于验证脚本失败,onsubmit将找不到验证函数,因此一切都将被破坏。 这是一个很好的行为,检查你的正则表达式与在线正则表达式测试网站,如 我认为,如果您将代码的regex部分更改为此,那么一切都将正常工作: var emailcheck=/^[A-Za-z0-9\\\-\\.]+\@[A-Za-z0-9\\-\.]+\.[A-Za-z]{2,4}$/; var passcheck=/?=.\\d?=.[a-z]?=.[a-z]。{8,10}/; var phonecheck=/^[0-9]{10}$/; 您会注意到,我在上一个正则表达式中更改了every/with/,并删除了+,因为它是无效的。
我希望它能有所帮助。1当你说它只是跳过了模式测试线,你是什么意思?你为什么这么想?2哪些示例输入值不起作用?如果在加载页面时检查浏览器控制台,它会返回:“SyntaxError:nothing to repeat”作为“需要将用于转义正则表达式特殊字符的反斜杠加倍”。正如我在你的代码中看到的,你有很多这样的错误。啊!我得到了输出。。。谢谢你,伙计!谢谢你的链接!这可能对我将来有所帮助:-