2010-08-26 46 views
58

這是我想要使用正則表達式:「在PHP中使用preg_match時未知修飾符'g'in ...」?

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

我發現它this site,當我嘗試它有它的偉大工程。但只要我把它放在我的代碼,我得到這個消息:

Warning: preg_match() [function.preg-match]: Unknown modifier 'g' in C:\xampp\htdocs\swebook\includes\classes.php on line 22 

誰能解釋什麼是錯的,以及爲什麼它的工作在該網站,而不是在我的代碼?

+1

我們可以給你更好的幫助,如果我們確切地知道你正在嘗試用正則表達式做。無論如何,你需要更好的幫助 - 或者正則表達式。在該網站上可用的所有寫得不好的電子郵件正則表達式中,您可能會選擇最糟糕的一個。 :/ – 2010-08-26 20:08:07

+2

僅供參考,您的正則表達式將驗證確定這些類型的郵件:「-.-。-.--。@ - some--domain--.com」,這些類型的VALID郵件不會驗證:「info @ subdomain.domain.com」。最後但並非最不重要\ w非常危險,因爲PHP preg使用Perl兼容正則表達式而不使用Javascript。如果PHP運行在美國/英國本地化的服務器上\ w會匹配重音字母,所以你會匹配「àèìòù@domain.com」有一個有效的郵件。請閱讀此處瞭解更多詳情:http://it.php.net/manual/en/function.preg-replace.php#92443 – 2010-08-26 20:30:32

回答

相關問題