0

PHPフォームにこのコードがあります:

function IsEmail($email)
{
    $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
    return (eregi($pattern,$email)) ? true : false;
};

そして、私のローカルサーバーは私にエラーを与えます:

関数 eregi() は非推奨です

だから私は自分のコードを次のように変更しました:

function IsEmail($email)
{
    $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
    return (preg_match($pattern,$email)) ? true : false;
};

そして今、私はこのエラーを受け取ります:

警告: preg_match() [function.preg-match]: 終了区切り文字 '^' が見つかりません

何か案が ?

4

2 に答える 2

1

区切り記号を追加します。

$pattern = "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$/";

この場合/、区切り文字として使用しました。最初に 1 回、最後に 1 回発生します。

区切り文字が正規表現自体で発生し、区切り文字としてではなく通常の一致文字として機能する場合は、区切り文字をエスケープする必要があることに注意してください。したがって/、正規表現のすべてをエスケープする必要があります\/(もちろん区切り文字を除く)。しかし、正規表現の中に何もありません。

于 2013-11-07T15:15:19.897 に答える
1

正規表現は で始まり、 で/終わる必要があり/ます。

お気に入り:

$pattern = "/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$/";
于 2013-11-07T15:15:23.377 に答える