我正在寻找与荷兰电话号码相匹配的正则表达式。这些是格式要求:
这是我到目前为止所提出的:
^0+-{1}?([0-9]{10,11})$
答案 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
,+31
,0
开头的数字。
答案 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}