2012-09-24 55 views

回答

1

幾件事情:接受*@foo.bar

var expression = /^([\w-\.*][email protected]([\w-]+\.)+[\w-]{2,4})?$/;//no need to pass it to the RegExp constructor 

但這種表達不接受[email protected],但話又說回來,正則表達式和電子郵件是不是所有的太好的朋友。但是,根據你的表現,這裏有一個稍微不那麼不可靠的版本:

var expression = /^[\w-\.\d*][email protected][\w\d]+(\.\w{2,4})$/; 

有是驗證所有有效類型的電子郵件地址,在網絡上某處的表達,雖然。看看,看看爲什麼正則表達式驗證幾乎總是要排除有效的輸入或太寬容

3

要回答你的問題從字面上看,你可以「增強」您正則表達式:

RegExp(/^([\w.*-][email protected]([\w-]+\.)+[\w-]{2,4})?$/); 

但是,這是電子郵件驗證一個可怕的正則表達式。正則表達式是錯誤的工具。你爲什麼insist on doing it this way

+0

我ganan使用正則表達式用於客戶端電子郵件驗證(JS),在服務器端我使用FILTER_VAR和PHP,使用Javascript進行電子郵件驗證的下一步是什麼?爲什麼它很糟糕?可以不接受一些有效的電子郵件地址嗎? – behz4d

+0

This accept [email protected],I guess the /^[\w-\.\d*][email protected][\w\d]+(\.\w{2,4})$/ is better since它不接受[email protected] – behz4d

+0

@ behz4d:你的正則表達式只拒絕該地址,因爲它(正則表達式)包含語法錯誤。 「@」之前的角色類中的短劃線位置錯誤,因此被忽略。因此,它不接受* @之前的任何*短劃線。 –

相關問題