2012-08-22 28 views
0

我一直在嘗試使用這個正則表達式的電子郵件在JavaScript中,但我似乎無法找到一個實際工作!我只需要取出一個電子郵件地址不需要的所有特殊字符(<>?/ | [] {}()* & ^%$#!〜`'space',等等。)REGEX的電子郵件使用

function validateForOnlyEmail(txt) { txt.value = txt.value.replace(/[^A-Z0-9._%+-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}]+/g, ''); } 

謝謝!

更新

好吧,我怎麼會只是塊的上方使用正則表達式的特殊字符?

+0

我想大部分(如果不是全部)你提到的那些字符在電子郵件地址中是有效的 - http://en.wikipedia.org/wiki/E-mail_address#RFC_specification –

+0

更新 - 你**不應該被阻止!#$%&'* + -/=?^ _'{|}〜 –

+0

@StealthRT Y dnt you b在'keypress'本身鎖定這些字符...'使用'RegEX''阻止'和'替換'上述特殊字符不會使**有意義** – Anirudha

回答

2

如果您想驗證一個郵箱地址正則表達式是不是正確的選擇..

使用MailAddress建議由我們自己怪胎SLaks

try 
{ 
    address = new MailAddress(address).Address; 
} 
catch(FormatException) 
{ 
    //address is invalid 
} 
+1

+1同意正則表達式不是解決方案:下面是一些示例正則表達式驗證電子郵件地址http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html –

+0

對上面的OP進行了更新。 – StealthRT

+1

由於幾個原因,我不得不不同意這個解決方案。首先,這是一個服務器端解決方案,而請求是針對JavaScript解決方案的。其次,從使用MailAddress對象的許多經驗來看,通過無效的電子郵件地址以及拒絕有效的電子郵件地址是相當差的。如果您使用System.Net.Mail發送電子郵件,那麼這是一個有爭議的問題,但這不是驗證電子郵件地址的簡單方法。 – rrrr

相關問題