'remove space, -, () from phone number
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.
Solution 1:[1]
To remove all characters except for + and numbers, you can do this:
let p = "+1 (555) 555-555"
console.log(p.replace(/[^\d\+]/g,''))
Solution 2:[2]
You can pass a regex pattern to your replace function. Like that:
let p = "+(11) 111 111-11"
console.log(p.replace(/[\s\-\(\)]/g,''))
Solution 3:[3]
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)
Solution 4:[4]
You can try phone.replace(/\D/g,'') this will replace all non-numeric characters and will give you the numbers, hope this helps.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Samathingamajig |
| Solution 2 | |
| Solution 3 | |
| Solution 4 |
