Tengo una serie de objetos que son números de teléfono como:
phoneArray = [{"phone": "+11 111 111"},{"phone": "+22 222 222"}]
Hice un bucle para eliminar espacios porque quiero este resultado:
[{"teléfono": "+11111111"},{"teléfono": "+22222222"}]
pero solo pude eliminar el primer espacio que parecía
[{"teléfono": "+11111 111"},{"teléfono": "+22222 222"}
con este código:
for(i=0 ; i<phoneArray.length ; i++) { let test = phoneArray[i].phone.replace(" ",""); }De hecho, tengo otros números de teléfono como {"teléfono": "(22) 222-222"} para formatear, pero si puedo eliminar el espacio, puedo eliminar otros signos como (), creo.
No uso expresiones regulares porque aún no lo entiendo.
Para eliminar todos los caracteres excepto + y números, puede hacer esto:
let p = "+1 (555) 555-555" console.log(p.replace(/[^\d\+]/g,''))Puede pasar un patrón de expresiones regulares a su función de reemplazo. Como eso:
let p = "+(11) 111 111-11" console.log(p.replace(/[\s\-\(\)]/g,''))Usaría la función de mapa para iterar la matriz y cambiar cada uno de los valores, a cada valor se aplicará la función reemplazar con una expresión regular para eliminar el número que no es de dígitos y +.
phoneArray = [{"phone": "+11 111 111"},{"phone": "+22 222 222"}] phoneArray = phoneArray.map(p => { return { phone: p.phone.replace(/[^+\d+]/g,"") } }) console.log(phoneArray)