solo regulares regular probar online numeros expresiones expresion espacio ejemplos blanco alfanumerico javascript regex

javascript - probar - expresiones regulares online



Expresión regular para reformatear un número de teléfono de EE. UU. En Javascript (7)

Estoy buscando reformatear (reemplazar, no validar, hay muchas referencias para validar) un número de teléfono para mostrar en Javascript. Aquí hay un ejemplo de algunos de los datos:

  • 123 4567890
  • (123) 456-7890
  • (123)456-7890
  • 123 456 7890
  • 123.456.7890
  • (en blanco / nulo)
  • 1234567890

¿Hay alguna manera fácil de usar una expresión regular para hacer esto? Estoy buscando la mejor manera de hacer esto. ¿Hay una mejor manera?

Quiero volver a formatear el número a lo siguiente: (123) 456-7890


Aquí hay uno que aceptará números de teléfono y números de teléfono con extensiones.

function phoneNumber(tel) { var toString = String(tel), phoneNumber = toString.replace(/[^0-9]/g, ""), countArrayStr = phoneNumber.split(""), numberVar = countArrayStr.length, closeStr = countArrayStr.join(""); if (numberVar == 10) { var phone = closeStr.replace(/(/d{3})(/d{3})(/d{4})/, "$1.$2.$3"); // Change number symbols here for numbers 10 digits in length. Just change the periods to what ever is needed. } else if (numberVar > 10) { var howMany = closeStr.length, subtract = (10 - howMany), phoneBeginning = closeStr.slice(0, subtract), phoneExtention = closeStr.slice(subtract), disX = "x", // Change the extension symbol here phoneBeginningReplace = phoneBeginning.replace(/(/d{3})(/d{3})(/d{4})/, "$1.$2.$3"), // Change number symbols here for numbers greater than 10 digits in length. Just change the periods and to what ever is needed. array = [phoneBeginningReplace, disX, phoneExtention], afterarray = array.splice(1, 0, " "), phone = array.join(""); } else { var phone = "invalid number US number"; } return phone; } phoneNumber("1234567891"); // Your phone number here


Estoy usando esta función para formatear números de EE. UU.

var numbers = "(123) 456-7890".replace(/[^/d]/g, ""); //This strips all characters that aren''t digits if (numbers.length != 10) //wrong format //handle error var phone = "(" + numbers.substr(0, 3) + ") " + numbers.substr(3, 3) + "-" + numbers.substr(6); //Create format with substrings

Acepta casi todas las formas imaginables de escribir un número de teléfono de EE. UU. El resultado se formatea a una forma estándar de (987) 654-3210 x123


Para números telefónicos de EE. UU.

function phoneNumber(tel) { var toString = String(tel), phoneNumber = toString.replace(/[^0-9]/g, ""), countArrayStr = phoneNumber.split(""), numberVar = countArrayStr.length, closeStr = countArrayStr.join(""); if (numberVar == 10) { var phone = closeStr.replace(/(/d{3})(/d{3})(/d{4})/, "$1.$2.$3"); // Change number symbols here for numbers 10 digits in length. Just change the periods to what ever is needed. } else if (numberVar > 10) { var howMany = closeStr.length, subtract = (10 - howMany), phoneBeginning = closeStr.slice(0, subtract), phoneExtention = closeStr.slice(subtract), disX = "x", // Change the extension symbol here phoneBeginningReplace = phoneBeginning.replace(/(/d{3})(/d{3})(/d{4})/, "$1.$2.$3"), // Change number symbols here for numbers greater than 10 digits in length. Just change the periods and to what ever is needed. array = [phoneBeginningReplace, disX, phoneExtention], afterarray = array.splice(1, 0, " "), phone = array.join(""); } else { var phone = "invalid number US number"; } return phone; } phoneNumber("1234567891"); // Your phone number here

Vamos a dividir esta expresión regular en fragmentos más pequeños para que sea fácil de entender.

  • /^/(? : Significa que el número de teléfono puede comenzar con una opción ( .
  • (/d{3}) : después de la opción ( debe haber 3 dígitos numéricos. Si el número de teléfono no tiene un ( , debe comenzar con 3 dígitos, por ejemplo (308 o 308 .
  • /)? : Significa que el número de teléfono puede tener una opción ) después de los primeros 3 dígitos.
  • [- ]? : A continuación, el número de teléfono puede tener un guión opcional ( - ) después ) si está presente o después de los primeros 3 dígitos.
  • (/d{3}) : Entonces debe haber 3 dígitos numéricos más. Ej. (308)-135 o 308-135 o 308135
  • [- ]? : Después del segundo conjunto de 3 dígitos, el número de teléfono puede tener otro guión opcional ( - ). Ej. (308)-135- o 308-135- o 308135-
  • (/d{4})$/ : Finalmente, el número de teléfono debe terminar con cuatro dígitos. Ej. (308)-135-7895 o 308-135-7895 o 308135-7895 o 3081357895 .

    Referencia:

http://www.zparacha.com/phone_number_regex/


Solución posible:

var x = ''301.474.4062''; x = x.replace(//D+/g, '''') .replace(/(/d{3})(/d{3})(/d{4})/, ''($1) $2-$3'');


Suponiendo que quiere el formato " (123) 456-7890 ":

function formatPhoneNumber(phoneNumberString) { var cleaned = ("" + phoneNumberString).replace(//D/g, ''''); var match = cleaned.match(/^(/d{3})(/d{3})(/d{4})$/); return (!match) ? null : "(" + match[1] + ") " + match[2] + "-" + match[3]; }

Aquí hay una versión que incluye el código internacional +1 opcional:

function normalize(phone) { //normalize string and remove all unnecessary characters phone = phone.replace(/[^/d]/g, ""); //check if number length equals to 10 if (phone.length == 10) { //reformat and return phone number return phone.replace(/(/d{3})(/d{3})(/d{4})/, "($1) $2-$3"); } return null; } var phone = ''(123)4567890''; phone = normalize(phone); //(123) 456-7890


/^/(?(/d{3})/)?[- ]?(/d{3})[- ]?(/d{4})$/


function formatUsPhone(phone) { var phoneTest = new RegExp(/^((/+1)|1)? ?/(?(/d{3})/)?[ .-]?(/d{3})[ .-]?(/d{4})( ?(ext/.? ?|x)(/d*))?$/); phone = phone.trim(); var results = phoneTest.exec(phone); if (results !== null && results.length > 8) { return "(" + results[3] + ") " + results[4] + "-" + results[5] + (typeof results[8] !== "undefined" ? " x" + results[8] : ""); } else { return phone; } }

Ejemplo de trabajo here .