在寻找通常格式化用户电话号码时,我找到了这个资源.... http://www.eyesis.ca/projects/formatphone.html
我想知道其他人是否有更好的解决方案。
答案 0 :(得分:4)
function formatPhone($string)
{
$number = trim(preg_replace('#[^0-9]#s', '', $string));
$length = strlen($number);
if($length == 7) {
$regex = '/([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{4})/';
$replace = '$1-$2';
} elseif($length == 10) {
$regex = '/([0-9]{3})([0-9]{3})([0-9]{4})/';
$replace = '($1) $2-$3';
} elseif($length == 11) {
$regex = '/([0-9]{1})([0-9]{3})([0-9]{3})([0-9]{4})/';
$replace = '$1 ($2) $3-$4';
}
$formatted = preg_replace($regex, $replace, $number);
return $formatted;
}
答案 1 :(得分:0)
他们一直试图让this进入Zend_Framework一段时间,但由于某些原因它没有为1.10做出决定。
就个人而言,除非有一个非常好的,完善的用于验证输入类型的库(似乎还没有用于PHP),我倾向于尽可能地清理字符串..
对于电话号码,我只是修剪空白,并提出一个相当简单的正则表达式来尝试保持通用(用“ - ”代替“ - ”等。)
请记住,当一些更好的东西出现时,你可能想要重写该方法中的逻辑以利用它!