2011-09-16 86 views
0

我們熱愛jQuery驗證,並且真的想繼續使用它。爲什麼jQuery驗證電子郵件正則表達式允許以「。」結尾的電子郵件。

然而,它最有用的功能之一是能夠驗證電子郵件地址客戶端...但它使用的正則表達式接受以「。」結尾的電子郵件,我不相信這是有效的肯定不會被我們的後端系統所喜歡。

我想知道是否有人知道爲什麼選擇這個特定的正則表達式或它是否可能是一個錯誤?

的jquery.validate-1.8.1代碼quesion:

 // http://docs.jquery.com/Plugins/Validation/Methods/email 
    email: function(value, element) { 
     // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ 
     return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value); 
    }, 
+0

這是一個非常有效的電子郵件。實際上,所有域都以「。」結尾,這是可選的。 – WhyNotHugo

回答

1

我覺得這個頁面將解釋爲什麼點被允許在最後:

http://en.wikipedia.org/wiki/Fully_qualified_domain_name

完全限定域名(FQDN),有時也被稱爲 絕對域名,[1 ]是一個域名,它在域名系統(DNS)的樹層次結構中指定其確切的 位置。它 指定所有域級別,包括頂級域名和 根域。一個完全合格的域名以其明確的 來區分;它只能被解釋爲一種方式。

例如,給定與本地主機名爲myhost和父 域名example.com的裝置,完全合格的域名是 myhost.example.com。因此,FQDN唯一標識設備 --同時世界上可能有許多主機稱爲myhost,但 只能是一個myhost.example.com。 在域名系統中,以及大多數 (尤其是在DNS區域文件中),指定了具有後綴點的完全限定域名 。例如,somehost.example.com。指定一個以空頂級域標籤結尾的絕對域名 。

DNS根域未命名,由空標籤 表示,導致域名以點分隔符結尾。

相關問題