2012-01-18 81 views
0

在下面的表達式中,它檢查有效的電子郵件。我的問題是我怎麼能檢查PPL | pplweb是在@符號後的電子郵件地址電子郵件中的某些字母的註冊表達式

!preg_match("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $email) 

感謝

+1

顯然,你不太喜歡'.info'域名持有者。更不用說'.museum'。嚴重的是,這是一個糟糕的正則表達式。不要嘗試使用regexen驗證電子郵件地址。 – 2012-01-18 14:47:41

+0

你有更好的方法嗎? – user747796 2012-01-18 15:18:14

回答

1

你可以在2個達陣組件分割你$email VAR @符號將其分離

$splitted_email = explode('@',$email); 

,然後由PPL/PP /網絡模式中的陣列的第一組分搜索

preg_match('(/ppl|pplweb/i)',$splitted_email[1]); 

這種方式,也許代碼有點長,但短正則表達式更好地mantain。

+0

這似乎不起作用 – user747796 2012-01-18 15:38:57

+0

嘗試'$ splitted_email = explode('@',$ email);'並匹配'$ splitted_email [1]'而不是'$ splitted_email [0]'。我提交了一個正在等待同行評審的答案。 – mcrumley 2012-01-18 16:52:01

+0

另外,正則表達式應該是''/ ppl | pplweb /''。或者如果你想要一個不區分大小寫的匹配:''/ ppl | pplweb/i''。 – mcrumley 2012-01-18 16:56:19

相關問題