2013-11-14 63 views
1

我正在尋找一種方法從字符串中刪除任何電話號碼和電子郵件地址。PHP從字符串中刪除電話號碼和電子郵件

是否有人已經認識到這種功能?

你們都推薦什麼? EREG?

謝謝 Regards, Titus。

PS:任何政黨成員是巨大的歡迎:)

$chaine = "Here is my e-Mail [email protected] 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; 
+1

你可以發佈一些字符串的例子嗎?你還可以發佈你已經試過的東西嗎?此外,FYI,ereg已棄用;不要使用它。 – pgl

+0

完成(編輯)sry – Titus

+0

我成功刪除電話號碼,但不是點分離不起作用。和電子郵件根本不起作用 – Titus

回答

3

這是一個基本的實現。電子郵件的正則表達式是從regexlib。 phpfiddle可以是tested here

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 [email protected] dolor sit amet, 555-123 555 consectetur adipiscing elit.'); 

的電話正則表達式只是扔在一起,因人而異。

+0

太巨大了!所以謝謝你:)我luv Boodle! – Titus

+0

該電子郵件正則表達式不允許在電子郵件地址中加上「+」,因此它不符合RFC。只是FYI。 – boodle

+1

手機取代也可以消除短號碼,例如'這是3456天前.'→3456將被替換。我們可以有最小長度來防止這種替換嗎? –

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); 

又讀

這大約爲正則表達式驗證電話號碼和的電子郵件地址的問題。

ps.s.Sample on phpfiddle

相關問題