我一直试图想出这个问题。我必须使用正则表达式来比较用户在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>
答案 0 :(得分:0)
首先,为什么没有发生 - 你有错字:
var domainRegEx = new RegEx
应该是:
var domainRegEx = new RegExp
答案 1 :(得分:0)
首先将new RegEx
更改为new RegExp
。然后你会开始得到反馈。如果您打开控制台并在javascript中查找错误,则可以确定这一点。
这是开始使用域名正则表达式的好地方。
/^([a-zA-Z0-9]+\.)?[a-zA-Z0-9][a-zA-Z0-9-]+\.[a-zA-Z]{2,6}?$/i