2012-12-07 114 views
0

我做的電子郵件正則表達式驗證的電子郵件和我堅持使用 以下表達式,如果用戶輸入類似abc.abc一個點上那麼這個表達式工作正常,但是當用戶進入[email protected]那麼它不」將不起作用正則表達式的JavaScript

var myreg = new RegExp(/([a-z0-9.]+)@([a-z0-9]+)\.([a-z0-9]+)/i); 
var patter = myreg.test(document.getElementById("email").value) 
alert(patter) 
if(patter == false){ 
    errorMsg.push("email Formate Error Ex:[email protected]"); 
} 

我希望該用戶必須在此甲像[email protected]/.ca/.org

+0

你是什麼意思*工作*和*不*工作,你的RE看起來不錯,但沒有必要使用'新的RegExp()'換一個'RegExp'實例。 – xiaoyi

+1

我建議這個非常寬容的正則表達式:'/ [^ @] + @ [^ @] /',否則你無法確定你是否要離開一些有效的電子郵件,或者最終得到一百萬字符正則表達式。只知道電子郵件是否真正有效的方法是發送電子郵件並獲得回覆。 – elclanrs

+0

'myreg.test(「[email protected]」);'returns' true' –

回答

-1

希望這是解決問題\ b [A-Z0-9 ._% - ]有用輸入他的電子郵件+ @ A-Z0-9 .-] +。[AZ] {2,4} \ b 它的情況略去。

0

使用正則表達式可能是最好的方法。

下面是一個例子 (現場演示):

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\[email protected]\"]+(\.[^<>()[\]\\.,;:\[email protected]\"]+)*)|(\ ".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; 
    return re.test(email); 
} 

但是請記住,我們不應該只在JavaScript驗證依賴。 JavaScript可以很容易地被禁用。這應該在服務器端進行驗證。

Source

0

模式的驗證電子郵件地址是:

/^([a-zA-Z0-9_.-])+\@(([a-zA-Z0-9- ])+)+([A-ZA-Z0-9] {2,4})+ $ /。

在正則表達式中使用此模式。你可以驗證任何電子郵件..

0

這項工作完全適合我。

/^[a-zA-Z]([a-zA-Z0-9_\-])+([\.][a-zA-Z0-9_]+)*\@((([a-zA-Z0-9\-])+\.){1,2})([a-zA-Z0-9]{2,40})$/;