Javascript正则表达式电子邮件地址

时间:2017-10-20 02:56:15

标签: javascript html

所以我完成了一项家庭作业。但我无法正确测试电子邮件地址。从我所知道的一切都是正确的。



<!DOCTYPE html>
<html>
<head>
<title>Lab 5, Part 3</title>
<script>
function validate()
{
var email = document.forms["form1"]["email"].value;
var emailValidator = "/^\w+([\.-]?\w+)+@\w+([\.:]?\w+)+(\.[a-zA-Z0-9]{2,3})+$/";

if (!email.match(emailValidator))
{
	alert("Not a valid Email Address");
	return false;
}
}
</script>
</head>
<body>
<h1 style="text-align:center">Lab 5, Part 3 for </h1>
<h2 style="text-align:center">IT 3203</h2>

<form name="form1" action="http://weblab.kennesaw.edu/formtest.php" onsubmit="return validate();" method="get">
<p> Email: <input type="text" id="email" name="email"></p>
		   <input type="Submit" value="Submit">
</form>

<p><a href=index.html>Back to Main Page</a></p>


</body>
</html>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

你的代码正确的正则表达式 var emailValidator = /^\w+[\w-+.]\@\w+([-.]\w+).[a-zA-Z]{2,}$/

<!DOCTYPE html>
<html>
<head>
<title>Lab 5, Part 3</title>
<script>
function validate()
{
var email = document.forms["form1"]["email"].value;
var emailValidator = /^\w+[\w-+\.]*\@\w+([-\.]\w+)*\.[a-zA-Z]{2,}$/;;

if (!email.match(emailValidator))
{
    alert("Not a valid Email Address");
    return false;
}
}
</script>
</head>
<body>
<h1 style="text-align:center">Lab 5, Part 3 for </h1>
<h2 style="text-align:center">IT 3203</h2>

<form name="form1" action="http://weblab.kennesaw.edu/formtest.php" onsubmit="return validate();" method="get">
<p> Email: <input type="text" id="email" name="email"></p>
           <input type="Submit" value="Submit">
</form>

<p><a href=index.html>Back to Main Page</a></p>


</body>
</html>

答案 1 :(得分:0)

更改您的电子邮件验证程序规则

function validate()
{
    var email = document.forms["form1"]["email"].value;

    var emailValidator = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

    if (!email.match(emailValidator))
    {
        alert("Not a valid Email Address");
        return false;
    }else{
        alert("Correct Email Address");
        return true;
    }
}

您的电子邮件验证程序规则未完成。给出有效的正则表达式规则。

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
	<title>Lab 5, Part 3</title>
	<script>
	function validate()
	{
		var email = document.forms["form1"]["email"].value;
		var emailValidator = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

		if (!email.match(emailValidator))
		{
			alert("Not a valid Email Address");
			return false;
		}else{
			alert("This is a Valid Email Address");
			return true;
		}
	}
	</script>
</head>
<body>
	<h1 style="text-align:center">Lab 5, Part 3 for </h1>
	<h2 style="text-align:center">IT 3203</h2>

	<form name="form1" action="http://weblab.kennesaw.edu/formtest.php" onsubmit="return validate();" method="get">
		<p> Email: <input type="text" id="email" name="email"></p>
		<input type="Submit" value="Submit">
	</form>

	<p><a href=index.html>Back to Main Page</a></p>


</body>
</html>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

问题是你有一些混合字符串文字和正则表达式文字符号:

$_GET

"/^\w+([\.-]?\w+)+@\w+([\.:]?\w+)+(\.[a-zA-Z0-9]{2,3})+$/" 表示字符串文字,"..."表示正则表达式文字。虽然您可以将字符串文字传递给/.../,但字符串的全部内容将被解释为正则表达式模式。这意味着,给定上面的字符串,您的代码将仅匹配测试字符串,字面上包含String#match,而不是。{/ p>

使用字符串文字而不使用正则表达式分隔符转义所有反斜杠:

/^....

或使用正则表达式文字(首选):

"^\\w+([\\.-]?\\w+)+@\\w+([\\.:]?\w+)+(\\.[a-zA-Z0-9]{2,3})+$"

Have a look at MDN to learn more about regular expression