如何验证或检查textcontent包含电话,电子邮件ID或网址

时间:2014-05-07 09:21:13

标签: javascript php

    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Untitled Document</title>
    <script> function validate()  
        {  
        var message = document.form1.Message.value;

         var emailPat = /^(\".*\"|[A-Za-z]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z]\w*(\.[A-Za-z]\w*)+)$/
         var RE = /^[\d\.\-]+$/;
         var Url = "^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$";
    if (message.match(emailPat)) {
        alert("Your Message contains an email! please remove ..");
        return false;
    } 
    else if(RE.test(message))
        {
            alert("Your Message contains an phone number! please remove ..");
            return false;
        }

    else if (message.match(Url)) {
       alert("Contains a URL.");
       return false;
    }   


       return true;
    }
        </script>
    </head>
     <body>
    <form name="form1" onsubmit=" return validate();">

    Your Message:<br><textarea name="Message" cols="60" rows="3" wrap="OFF"></textarea>
<input type="submit" value="submit" />
     </form>
    </body>

在这里,我尝试将一个textarea与任何手机,电子邮件ID或网址放在一起,在这里,如果我给单个像只有电子邮件ID它的工作,我会faild连接所有,当我试图给多个它失败时

1 个答案:

答案 0 :(得分:2)

您的正则表达式包含特殊符号 ^$,它们对应行的开头和结尾

这意味着你的正则表达式

/^(\".*\"|[A-Za-z]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z]\w*(\.[A-Za-z]\w*)+)$/

检查该行开始后(^)应该有一些电子邮件(\".*\"|[A-Za-z]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z]\w*(\.[A-Za-z]\w*)+),然后该行结束($)。因此,如果您测试在电子邮件之前或之后有一些文本的字符串,则匹配将不起作用。

如果要检查包含匹配正则表达式的子字符串的字符串,则不应包含^$符号。

所以试试:

var emailPat = /(\".*\"|[A-Za-z]\w*)@(\[\d{1,3}(\.\d{1,3}){3}]|[A-Za-z]\w*(\.[A-Za-z]\w*)+)/
var RE = /[\d\.\-]+/;
var Url = "[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+";