Contamos con la mejor respuesta que hallamos en línea. Queremos que te resulte útil y si deseas comentarnos algún detalle que nos pueda ayudar a crecer hazlo libremente.
Solución:
Este es un formateador de teléfonos de EE. UU. que funciona en más versiones de números que cualquiera de las respuestas actuales.
$numbers = explode("n", '(111) 222-3333
((111) 222-3333
1112223333
111 222-3333
111-222-3333
(111)2223333
+11234567890
1-8002353551
123-456-7890 -Hello!
+1 - 1234567890
');
foreach($numbers as $number)
print preg_replace('~.*(d3)[^d]0,7(d3)[^d]0,7(d4).*~', '($1) $2-$3', $number). "n";
Y aquí hay un desglose de la expresión regular:
Cell: +1 999-(555 0001)
.* zero or more of anything "Cell: +1 "
(d3) three digits "999"
[^d]0,7 zero or up to 7 of something not a digit "-("
(d3) three digits "555"
[^d]0,7 zero or up to 7 of something not a digit " "
(d4) four digits "0001"
.* zero or more of anything ")"
Actualizado: 11 de marzo de 2015 para usar 0,7
en vez de ,7
$data = '+11234567890';
if( preg_match( '/^+d(d3)(d3)(d4)$/', $data, $matches ) )
$result = $matches[1] . '-' .$matches[2] . '-' . $matches[3];
return $result;
Esta función formateará números de teléfono internacionales (más de 10 dígitos), no internacionales (10 dígitos) o de la vieja escuela (7 dígitos). Cualquier número que no sea 10+, 10 o 7 dígitos permanecerá sin formato.
function formatPhoneNumber($phoneNumber)
$phoneNumber = preg_replace('/[^0-9]/','',$phoneNumber);
if(strlen($phoneNumber) > 10)
$countryCode = substr($phoneNumber, 0, strlen($phoneNumber)-10);
$areaCode = substr($phoneNumber, -10, 3);
$nextThree = substr($phoneNumber, -7, 3);
$lastFour = substr($phoneNumber, -4, 4);
$phoneNumber = '+'.$countryCode.' ('.$areaCode.') '.$nextThree.'-'.$lastFour;
else if(strlen($phoneNumber) == 10)
$areaCode = substr($phoneNumber, 0, 3);
$nextThree = substr($phoneNumber, 3, 3);
$lastFour = substr($phoneNumber, 6, 4);
$phoneNumber = '('.$areaCode.') '.$nextThree.'-'.$lastFour;
else if(strlen($phoneNumber) == 7)
$nextThree = substr($phoneNumber, 0, 3);
$lastFour = substr($phoneNumber, 3, 4);
$phoneNumber = $nextThree.'-'.$lastFour;
return $phoneNumber;
Reseñas y valoraciones
Nos puedes añadir valor a nuestro contenido informacional contribuyendo tu veteranía en las notas.
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)