具有特定前缀的电话号码的正则表达式

Regex for telephone numbers with specific prefixes

我创建了这个正则表达式来匹配具有三个特定前缀的电话号码,但它并不完美。我需要一个正则表达式,它只匹配前缀为 +48+420421 的数字。

^[+][4](8|2)[0-9]{1,14}\d

当输入为+421 456 456 456ioejkfoi312时我希望正则表达式匹配+421 456 456 456.

我认为这非常有效。

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

其他任何东西都会给出错误