2012-05-31 45 views
0

我需要驗證一個電子郵件地址與額外的域名。我目前使用@email.com驗證了一個正常的電子郵件,但我需要驗證一個有@email.email.com的電子郵件。我對RegEx不夠熟悉。RegEx的電子郵件地址與其他域與JQuery Vaildate

$.validator.addMethod('matches', function (value, element, param) { 
    return this.optional(element) || value.match(param); 
}, 
'Please enter a valid value.'); 

$(function() { 

$("form").validate({ 

      rules: { 
       email: { 
        required: true, 
        email: true, 
        matches: '[email protected]' 
       } 
      }, messages: { 
       email: { 
        matches: 'Must be a email.com e-mail address.' 
       } 
      } 
     }); 
    }); 
+1

http://www.regular-expressions.info/email.html – Andreas

+0

@安德里亞斯 - 你應該發佈(作爲一個簡短的解釋)作爲答案。我的簡短回答:不要打擾使用正則表達式來「驗證」電子郵件地址,因爲(1)你會弄錯它並排除有效的電子郵件地址(如xvatar在該答案中)和(2)你必須無論如何發送確認測試信息。 –

+0

@Andreas - 謝謝你,但我已經知道這些網站。我只是無法得到像@ testemail.com而不是@ test.email.com那樣的電子郵件 – xivo

回答

0

要使用兩個部分頂級域匹配任何(通常)的電子郵件,就像*@google.co.uk你可以使用一個RegExp,匹配域中2-3節字部位:

var emailRegExp = /[a-zA-Z0-9._-]@[a-zA-Z0-9-]+\.\w+(\.\w+)?/ 
... 
// in your code 
matches: emailRegExp 

正則表達式說明:

  • [a-zA-Z0-9._-]部分將匹配任何常用的字符,以及._和名稱210

  • 域名部分[a-zA-Z0-9-]是大約相同的名稱,但不._

  • 頂級域部分\.\w+(\.\w+)?將匹配任何單個TLD像.com.net等作爲還有那些雙.co.uk.co.jp.foo.bar

正則表達式是一個很短的一個。 如果你真的有興趣在正確的電子郵件驗證,你應該看看RFC822-Spec(SCNR:D)

+0

我只是想驗證一個特定的電子郵件。 – xivo

+0

那麼xvatar的答案也許就是你要找的。 – Tharabas

+0

是的,jquery驗證已經驗證了電子郵件地址,但我試圖驗證它是否是內部電子郵件。 – xivo

相關問題