2015-11-02 18 views
0

我需要接受電子郵件驗證正則表達式中@字符之前的_字符。我沒有寫這個代碼,而且我在理解和修改它時遇到了一些困難。我需要接受正則表達式電子郵件驗證中的下劃線字符「_」

例子:

[email protected]

function($){ 
 
    $.fn.validationEngineLanguage = function(){ 
 
    }; 
 
    $.validationEngineLanguage = { 
 
     newLang: function(){ 
 
      $.validationEngineLanguage.allRules = { 
 

 
... 
 

 
"email": { 
 
        // Shamelessly lifted from Scott Gonzalez via the Bassistance Validation plugin http://projects.scottsplayground.com/email_address_validation/ 
 
        "regex": /^((([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, 
 
        "alertText": "* Correo inválido" 
 
       }, 
 
       
 
... 
 
      
 
      }; 
 
      
 
     } 
 
    }; 
 
    $.validationEngineLanguage.newLang(); 
 
})(jQuery);

+1

[電子郵件地址非常難以驗證](http://stackoverflow.com/questions/201323/using-a-regular-表達到驗證-AN-電子郵件地址)。您最好的解決方案不是使用正則表達式,而是添加服務器端代碼來向該地址發送確認電子郵件。 – Blazemonger

+0

那麼是否需要有'_',或者只有在_之前有'_'? – lintmouse

+0

如果你只是想確保'@'後面沒有'_',那麼可以用這個:'@ [^ _] + $'離開。 – lintmouse

回答

0

我解決了這句話,謝謝你的好意:

"regex": /(^[0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*)[email protected]([0-9a-zA-Z]+(?:[._-][0-9a-zA-Z]+)*\.[0-9a-zA-Z]{2,3})$/i,

0

你找到了@符號,不是嗎?只需在它之前添加下劃線即可。

"regex": /^((([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)))[[email protected]]((([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, 
+0

你說什麼聽起來合乎邏輯,但它沒有工作:( –

+0

第二,我會測試它... btw添加[] –

+0

Yeap,一個適用於我,抱歉的錯誤:( –

0

\ B [A-Z0-9 ._%+ - ] + @ [A-Z0 -9 .-] +。[AZ] {2,} \ b來驗證電子郵件

相關問題