荷兰电话号码的正则表达式

时间:2013-07-30 14:25:04

标签: regex phone-number

我正在寻找与荷兰电话号码相匹配的正则表达式。这些是格式要求:

  • 应从0开始
  • 包含最多1个(可选)短划线“ - ”字符,现在它无关紧要,只要它不是第一个字符
  • 总长度10或11个字符

这是我到目前为止所提出的:

^0+-{1}?([0-9]{10,11})$

8 个答案:

答案 0 :(得分:32)

我之前见过这个 http://regexlib.com/Search.aspx?k=phone%20number 检查这个网站,希望它有所帮助。

(^\+[0-9]{2}|^\+[0-9]{2}\(0\)|^\(\+[0-9]{2}\)\(0\)|^00[0-9]{2}|^0)([0-9]{9}$|[0-9\-\s]{10}$)
  

用于评估荷兰式电话号码的正则表达式。可能   示例前缀:+ 31,+ 31(0),(+ 31)(0),0,0031后跟9个数字   (可以包含空格或 - )。

答案 1 :(得分:5)

试试这个正则表达式:^(?=^.{10,11}$)0\d*-?\d*$

答案 2 :(得分:4)

我想出了这个创作

^(?:0|(?:\+|00) ?31 ?)(?:(?:[1-9] ?(?:[0-9] ?){8})|(?:6 ?-? ?[1-9] ?(?:[0-9] ?){7})|(?:[1,2,3,4,5,7,8,9]\d ?-? ?[1-9] ?(?:[0-9] ?){6})|(?:[1,2,3,4,5,7,8,9]\d{2} ?-? ?[1-9] ?(?:[0-9] ?){5}))$

答案 3 :(得分:1)

这是荷兰移动电话号码的正则表达式,包括检查国际前缀(0031或+31)。请查看:https://regex101.com/r/Y2DG19/1

^\(?([+]31|0031|0)-?6(\s?|-)([0-9]\s{0,3}){8}$

希望这可以帮助人们。

答案 4 :(得分:0)

这是我的解决方案:

extension String {
    func isValidPhone() -> Bool {
        let dutchRegex = "^(06[0-9]{8}|[+]{1}31[0]?[0-9]{9,10}|0031[0]?[0-9]{9,10})"
        let phonePredicate = NSPredicate(format:"SELF MATCHES %@", dutchRegex)
        return phonePredicate(with: self) 
    }
}

这将验证所有带有+31、06、0031的号码,因此仅适用于荷兰电话号码

答案 5 :(得分:0)

您也可以这样做。首先,您删除所有非数字,然后使用正则表达式检查数字。

const regex = /^((\+|00)?31|0(?!0))(\d{9})$/;
const valid = regex.test(input.replace(/\D/g, ''));

它适用于以0031+310开头的数字。

答案 6 :(得分:0)

我试图通过在连字符或空格的使用上添加更多限制来详细说明@Raj的解决方案,因为它也以某种方式捕获了06-01-2019。我也在其中添加了一些评论以提供示例:

\b(\+[0-9]{2}(?# e.g. +31)|^\+[0-9]{2}\(0\)|\(\+[0-9]{2}\)\(0\)(?# e.g. +31(0)|00[0-9]{2}(?# e.g. 0031)|0)([6][\-\s]?[1-9][0-9]{7}(?# e.g. 0612345678 or 06-12345678 or 06 12345678)|[6][\-\s]?[1-9][0-9]\s?[0-9]{2}\s?[0-9]{2}\s?[0-9]{2}(?# e.g. 06-12 34 56 78)|[6][\-\s]?[1-9][0-9]\s?[0-9]{3}\s?[0-9]{3}(?# e.g. 06-12 345 678)|[6][\-\s]?[1-9][0-9]{2}\s?[0-9]{3}\s?[0-9]{2}(?# e.g. 06-123 456 78)|[0-9]{2}[\-\s]?[1-9][0-9]{6}(?# e.g. 030-1234567)|[0-9]{2}[\-\s]?[1-9][0-9]{2}\s?[0-9]{2}\s?[0-9]{2}(?# e.g. 030-123 45 67)|[0-9]{2}[\-\s]?[1-9][0-9]\s?[0-9]{2}\s?[0-9]{3}(?# e.g. 030-12 34 567))\b

(我知道...而且我什至没有涵盖所有包含空格的情况)

答案 7 :(得分:-1)

我为荷兰手机号码生成了以下内容。到目前为止,我测试了一些可能性,并能够覆盖它们。我希望它有所帮助。

\(?(31\s*|0)-?6(\s*\)?|-?\s*)([0-9]\s{0,3}){8}