我有一个网站,我需要阻止用户通过邮件向其他用户发送联系电话/电子邮件,
我在下面有点成功地使用它,但它并没有做我想做的事情,即..匹配所有场景
public function clean_email($text){
$pattern = '/\w+[\w-\.]*(\@\w+((-\w+)|(\w*))\.[a-z]{2,3})/i';
preg_match($pattern, $text, $matches);
return (isset($matches[1])) ? str_replace($matches[1],
"[********]", $text) : $text;
}
public function clean_phone($text){
$pattern = '/(\d{3}|\d{4})|(\d{3,+})/i';
preg_match($pattern, $text, $matches);
return (isset($matches[1])) ? str_replace($matches[1],
"[********]", $text) : $text;
}
我正在考虑使用 preg_replace 来识别邮件文本中的电话号码,但是我知道电话号码可以用多种方式编写,如下所示,
0433 765 888
0433765888
+61433765888
+610433765888
+61 02 9876 0987
+61 0298760987
+610298760987
是否可以编写一个单一的 preg_replace 模式来识别它们?
还需要对电子邮件地址做同样的事情,我也想在我们在电子邮件文本中找到的每个电子邮件地址中用 [censored] 替换它们。IE
mlanXXX@hotmail.com
mlanXXX AT hotmail.com
运气好的话 ..