簡體   English   中英

preg_match:未知修飾符“ +”嗎?

[英]preg_match: Unknown modifier '+'?

我有這種模式來檢查電子郵件:

$emailpat = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";

當我想執行此代碼時:

$emailpat = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?";
if(!preg_match($emailpat, $_POST["email"])){
    echo "error in email";
}else{
    echo "done";
}

我收到以下錯誤:

preg_match() [function.preg-match]: Unknown modifier '+'

建議

如果要處理用戶輸入,我建議使用filter_var()函數。 它幾乎做同樣的事情,但是沒有整個正則表達式。

例子

參考文獻

謝謝幫助! 問題是決定...

pattern /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/
        ^               ^                                ^                                                                                    ^ 
        |               |                                |                                                                                    |
      start            END                             start                                                                                 END

我需要用2個反斜線遮蓋斜線

/[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM