1

文字列から電話番号と電子メール アドレスを削除する方法を探しています。

そのような機能をすでに実現している人はいますか?

皆さんは何をお勧めしますか?EREG?

よろしくお願いします、タイタス​​。

PS: どんなチュートも大歓迎です :)

    $chaine = "Here is my e-Mail contact@domain.eu and my phone (works) 0606060606 (not works) 06.06.06.06.06";
// Phone Number :
$chaine = preg_replace('/\+?[0-9][0-9()-\s+]{4,20}[0-9]/', '[removed]', $chaine);

// E-mail adress :
$pattern = "/[^@\s]*@[^@\s]*\.[^@\s]*/";
$replacement = "[removed]";
preg_replace($pattern, $replacement, $chaine);

echo $chaine;
4

4 に答える 4

3

これが基本的な実装です。電子メールの正規表現はregexlibからのものです。ここで phpfiddle をテストできます。

function removeEmailAndPhoneFromString($string) {
    // remove email
    $string = preg_replace('/([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/','',$string);

    // remove phone
    $string = preg_replace('/([0-9]+[\- ]?[0-9]+)/','',$string);

    return $string;
}

echo removeEmailAndPhoneFromString('Lorem ipsum foo@bar.com dolor sit amet, 555-123 555 consectetur adipiscing elit.');

電話の正規表現が一緒に投げられたので、YMMV.

于 2013-11-14T17:43:13.120 に答える
0

これに使っpreg_replaceてみてください。

コードは

    $string = 'your string';

    $patterns = array();
    $patterns[0] = '/([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)/';
    $patterns[1] = '/([0-9]+[\- ]?[0-9]+)/';

    $replacements = array();
    $replacements[0] = '';
    $replacements[1] = '';

    //should use just one call of preg_replace for perfomance issues
    $string = preg_replace($patterns, $replacements, $string);

また読む

これは、電話番号とメールアドレスを検証するための正規表現に関する質問です。

phpfiddle のpsSample

于 2013-11-14T17:46:37.520 に答える