0

検出する正規表現が必要first.second@domain.tld

しかし、検出されません([a-z0-9A-Z])@domain.tld

有効:abc123XYZ@domain.tld

無効:abc12.de456@domain.tld

@メールアドレスでピリオドが法的に先行していることを認識していますが、その状態を検出する必要があります。

4

3 に答える 3

2

これが適切な電子メール アドレスであることを既に検証済みであると仮定すると、次のようになります。

\..*@

つまり、 A .、次に 0 個以上の文字のシーケンス、次に@

于 2013-03-11T22:06:22.983 に答える
1

これには正規表現は必要ありません。ピリオドの位置をアットマークと比較するだけです。

// assuming there's already an `@` in $email
if (($p = strpos($email, '.')) !== false && $p < strpos($email, '@')) {
    echo 'invalid';
}

@電子メール アドレスにno がない場合'invalid'、整数は厳密には より小さくならないため、印刷されませんfalse

于 2013-03-12T00:59:35.560 に答える
0

\.(?=.*@) トリックを行う必要があります。

于 2013-03-11T22:05:55.150 に答える