繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM