'Regex for telephone numbers with specific prefixes
I'm created this regex to match telephone numbers that have three specific prefixes, but it's not perfect. I need a regex that will only match numbers with the prefixes +48, +420, 421 and nothing else.
^[+][4](8|2)[0-9]{1,14}\d
When the Input is +421 456 456 456ioejkfoi312 I want the regular expression to match +421 456 456 456.
Solution 1:[1]
I think this works perfectly.
console.log(/\+420\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|\+421\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|48\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}/.test("+48123")) // true
console.log(/\+420\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|\+421\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|48\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}/.test("+420 123")) // true
console.log(/\+420\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|\+421\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|48\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}/.test("+421 12 3")) // true
console.log(/\+420\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|\+421\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|48\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}/.test("+422123")) // false
console.log(/\+420\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|\+421\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|48\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}/.test("+41123")) // false
console.log(/\+420\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|\+421\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}|48\s*\d{1,5}\s*\d{1,5}\s*\d{1,5}/.test("+421456456456")) // true
Anything else gives false
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 |
