Pregunta

Estoy usando el siguiente Regex para convertir dígitos en formato de teléfono.

telephoneNumber = '1234567890';
var number = telephoneNumber.replace(/\D/g,''); 
newNumber = number.replace(/^(\d{3})(\d{3})(\d{4})$/, '($1)$2-$3'); // (123)456-7890

Problema es que si TeleponEnumber.length es mayor que 10, entonces no hace nada. Quiero agregar dígitos adicionales al final del número de teléfono.

Por ejemplo:

change 1234567890 to (123)456-7890
change 1234567890111 to (123)456-7890111

¿Qué debo cambiar en Regex anterior?

Gracias.

¿Fue útil?

Solución

Intente cambiar la última línea a esto:newNumber = number.replace(/^(\d{3})(\d{3})(\d{4,})$/, '($1)$2-$3');

Acabo de agregar una coma después del \d{4 Esto le dice que tome 4 o más dígitos.

Además, a menudo uso este sitio para probar mi regex: http://gskinner.com/regexr/ Es muy útil.

Otros consejos

La única razón por la que puedo ver que desea usar una regex es para validación, sin embargo, si solo está tratando de formatear la cadena a un número de teléfono, ¿por qué no usar un Formatero de número de teléfono de JavaScript

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top