[英]Javascript: Using regex to compare a domain to the email address
我已经尝试了一段时间了。 我必须使用正则表达式来比较用户以HTML形式输入的域和电子邮件地址。 我认为我的正则表达式正确,但是当我测试我的代码时,什么也没有发生。 这是我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Chapter 7 Assignment 2</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<script type="text/javascript">
/* <![CDATA[ */
function domainCompare() {
var status = false;
var domainRegEx = new RegEx(/^[_a-zA-Z0-9\\-]+(\.[_a-zA-Z0-9\\-]+)*@ + document.myform.domain_name.value?/);
if (document.myform.email_address.value.search(domainRegEx) == -1) {
window.alert("Please enter an email address.");
}
else if (document.myform.email_address.value != domainRegEx) {
window.alert("They do not match.");
}
else {
window.alert("They match!");
status = true;
}
return status;
}
/* ]]> */
</script>
</head>
<body>
<center>
<h3>Email Address Validator</h3>
<form name="myform"> <!--onsubmit="return domainCompare();"-->
<p>
E-mail Domain: <input type="text" name="domain_name" size="30" />
E-mail Address: <input type="text" name="email_address" size="30" />
</p>
<p>
<input type="submit" value="Submit" onclick="domainCompare();"/>
</p>
</form>
</center>
</body>
</html>
首先,为什么什么也没发生-您输入错字了:
var domainRegEx = new RegEx
应该:
var domainRegEx = new RegExp
首先将new RegEx
更改为new RegExp
。 然后,您将开始获得反馈。 如果您打开控制台并在javascript中查找错误,则可以确定。
这是从域的正则表达式开始的好地方。
/^([a-zA-Z0-9]+\.)?[a-zA-Z0-9][a-zA-Z0-9-]+\.[a-zA-Z]{2,6}?$/i
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.