2014-05-07 34 views
2
<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> 

在這裏,我試圖把一個文本區域與任何電話,電子郵件ID或URL,在這裏,我zhcon失敗來連接所有,如果我給單隻喜歡電子郵件ID它的工作,當我試圖給多個失敗如何驗證或檢查的TextContent包括電話,電子郵件ID或URL

回答

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-_%&\?\/.=]+"; 
+0

感謝您迴應 –

+0

如何在PHP做相同的功能 –

相關問題