Javascript:使用正则表达式将域与电子邮件地址进行比较

时间:2016-11-07 02:53:02

标签: javascript html

我一直试图想出这个问题。我必须使用正则表达式来比较用户在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>

2 个答案:

答案 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