JavaScript 正则表达式 string.replace( regex, "$1" );中“$1”的含义 及邮箱正则表达式

   在使用javascrip正则表达式时,发现可以根据正则表达式取字符串内的特定字符串的内容。举例说明:

<!DOCTYPE html>
<html>
<head>
<meta charset="GB2312" />
<title>电子邮件地址验证程序</title>
<script language="javascript" type="text/javascript">

    function check( email_address )
    {
        var regex = /^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/g;
        if ( regex.test( email_address ) )
        {
            
            var user_name = email_address.replace( regex, "$1" );
            var domain_name = email_address.replace( regex, "$2" );
            var alert_string = "您输入的电子邮件地址合法\n\n";
            alert_string += "用户名:" + user_name + "\n";
            alert_string += "域名:" + domain_name;
            window.alert( alert_string );
            return true;
        }
        else
        {
            window.alert( "您输入的电子邮件地址不合法" );
            return false;
        }
    }
</script>
</head>
<body style="text-align: center;">
<h1>电子邮件地址验证程序</h1>
请输入电子邮件地址:<input id="email_address" type="text" style="width: 300px;" /><br />
<input type="button" value="验证电子邮件地址" onclick="return check(document.getElementById('email_address').value);" />
</body>
</html>

在例子中,var user_name = email_address.replace( regex, "$1" );对邮箱地址中的用户名进行了截取。“$1”表示的是^([0-9A-Za-z\-_\.]+)

“$1”表示的是组引用,$1表示引用前面匹配到的第一组字符串;

 

posted @ 2017-06-17 15:43  TZB_007  阅读(3085)  评论(0编辑  收藏  举报