2011-08-25 76 views
1

我有這個正則表達式[a-z0-9]*@metu\.edu它使用HTML5檢查用戶輸入用戶。我想接受用戶名中的點(。),只有一個點。如:[email protected]如何用Regex在電子郵件地址中接受點?

+0

您可能會發現[這](http://stackoverflow.com/questions/201323/what-is -the-best-regular-expression-for-validating-email-addresses)發佈在SO上很有幫助。 – FrVaBe

回答

3

使用下面

^[a-z0-9]+[.]?[a-z0-9][email protected]\.edu$ 

DEMO

+0

這不符合給出的要求 – Lucero

+0

@lucero請參閱更新 – diEcho

+0

你刪除了數字... ilhan寫道:「只有字母數字和一個點」。 – Lucero

1

點添加到字符範圍:[a-z0-9.]*

要排除的開頭或名稱的結束點,並且只允許一個點使用多個字符類:

[a-z0-9]+\.?[a-z0-9][email protected]\.edu 
+0

這是一個單個字符,後面可能跟着一個點,你可能在第一個字符類後面缺少一個「+」。 – Zaki

+0

@Zaki你是對的,我加了一個'+',並且改變了最後一個'*'。經測試,現在匹配'herp.derp @ metu.edu',但不是'herpderp。@ metu.edu'或'herp.derpity.derp @ metu.edu' – Kapep

0

你不應該試圖自己使用正則表達式解析電子郵件地址,因爲你會失敗。請考慮:http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html

我通常所做的就是接受任何字符串作爲電子郵件。如果僅僅是爲了用戶註冊或者其他什麼,那麼真的不需要驗證它。當你發送電子郵件時它會失敗,然後你知道這是錯誤的。

+0

這是一所大學。我們沒有不同的表達方式。只有一個點的字母數字。 – ilhan

3
[a-z0-9][a-z0-9.]*@metu\.edu\.tr 

這將需要至少一個(小寫字符或數字),然後(小寫字符或數字或點),這樣的電子郵件地址不能以開始或僅由一個單個點的。但是,您應該重新考慮使用此正則表達式進行電子郵件驗證,因爲可接受的電子郵件地址包含更多情況( - ,+,_等)(並且不要忘記大小限制)

+0

接受多個點... – Lucero

+0

你是對的,加上它也允許點在本地部分的結尾,根據RFC5322,這是不正式有效。 – Zaki

+0

這回答了我自己的一個半相關問題,非常感謝。 – Wompguinea

1

通常,e郵件地址不應與正則表達式匹配。然而,在你的具體情況下,你似乎有一個你想要匹配的獨特模式。

[a-z0-9]+(\.[a-z0-9]+)[email protected]\.edu 

假設一個點是可選的,如果它是強制性的,使用此:

[a-z0-9]+\.[a-z0-9][email protected]\.edu 
相關問題