I have an array of objects which are phone numbers such as:
phoneArray = [{"phone": " 11 111 111"},{"phone": " 22 222 222"}]
I did a loop on it to remove spaces because I want this result:
[{"phone": " 11111111"},{"phone": " 22222222"}]
but I only could remove the first space which looked like
[{"phone": " 11111 111"},{"phone": " 22222 222"}
with this code:
for(i=0 ; i<phoneArray.length ; i ) {
let test = phoneArray[i].phone.replace(" ","");
}
I actually have other phone numbers like {"phone": "(22) 222-222"} to format but if I can remove space I can remove other signes like ()- I think.
I don't use regex because I don't understand it yet.
CodePudding user response:
To remove all characters except for and numbers, you can do this:
let p = " 1 (555) 555-555"
console.log(p.replace(/[^\d\ ]/g,''))
CodePudding user response:
You can pass a regex pattern to your replace function. Like that:
let p = " (11) 111 111-11"
console.log(p.replace(/[\s\-\(\)]/g,''))
CodePudding user response:
I would use the map function to iterate the array and change each of the values, to each value will apply the function replace with a regex in order to remove the non digits number and .
phoneArray = [{"phone": " 11 111 111"},{"phone": " 22 222 222"}]
phoneArray = phoneArray.map(p => {
return {
phone: p.phone.replace(/[^ \d ]/g,"")
}
})
console.log(phoneArray)
CodePudding user response:
You can try phone.replace(/\D/g,'') this will replace all non-numeric characters and will give you the numbers, hope this helps.
