我有一些jQuery和RegEx代碼很好用驗證電子郵件地址 ...只要地址基於簡單的拉丁字符即可。但是,當我們插入更復雜的多語言電子郵件地址時,我們的檢查無法使用基於正則表達式的原生HTML5驗證和驗證。使用jQuery和RegEx進行多語言電子郵件地址驗證
下面是我們使用的測試,中國電子郵件地址:
伊昭傑@郵件商務
而這裏的JS驗證代碼(我沒有打擾到去掉命名空間和內部工具方法)。我們有一個隱藏的「email」類型的HTML5輸入控件,我們將該電子郵件地址傳遞給該控件,並讓瀏覽器發揮其魔力。否則,我們使用正則表達式。
我們有什麼選擇?看起來像使用本地(例如基於瀏覽器的)驗證就是行不通的。
um.utils.isValidEmail = function (sEmail) {
var r = false;
var $emailTester = {};
var emailRegex;
//-----
if (Modernizr.inputtypes.email === true) {
// Defer to native HTML5 email validation using a hidden <input type='email'> control
$emailTester = $("#idEmailTester");
um.utils.assertSize($emailTester);
$emailTester.val(sEmail);
r = $emailTester[0].checkValidity();
} else {
// Use a regular expression to do email validation
// Attribution http://www.regular-expressions.info/email.html
emailRegex = /^[a-zA-Z0-9.!#$%&'*+\/=?\^_`{|}~\-][email protected][a-zA-Z0-9](?:[a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?)*$/;
r = emailRegex.test(sEmail);
}
return r;
};
了多語種電子郵件之間的所有字符,你米ight只是更好地做「除了」每個電子郵件部分檢查,意味着一切,但不允許的字符http://en.wikipedia.org/wiki/Email_address –
我想知道工程中是否有任何計劃爲HTML5電子郵件控件本地支持多語言驗證。如果沒有,通過Modernizer推遲到內在的HTML5功能是沒有任何意義的。 –