regex - 带有国家代码的电话号码的正则表达式
问题描述
这种格式的电话号码的正则表达式是什么+91-9999999999
?
格式:+(country code)-(10 digit phone number)
我发现了许多与此类似的问题,例如:Regex for phone number with country code
但它们并不特定于这种格式。
另外,如果可能的话,您能否告诉我如何在 ruby 中使用它,或者我会自己弄清楚。
解决方案
请不要以这种方式验证用户输入。如果您尝试验证用户输入,通常最好验证您的位数是否正确,然后进行自己的格式化。要验证您的输入字符串中有 11-13 位数字,即使它的格式不完美,请考虑以下事项:
input = " + ( 11 ) 123-456-7890 "
input.delete! "^0-9"
input.length >= 11 && input.length <= 13
#=> true
input_chars = input.chars
phone_number, country_code = input_chars.pop(10).join, input_chars.join
p formatted_number = "+(%d) %d" % [country_code, phone_number]
#=> "+(11) 1234567890"
另一方面,如果您有一个要验证格式本身的数据集,那就另当别论了。您可以查找 1-3 位数字,后跟 10 位数字,以及您要查找的任何锚点或格式。例如:
expected_format = /\A\+\d{1,3}-\d{10}\z/
input = "+91-9999999999"
input.match? expected_format
#=> true
input = "91-9999999999"
input.match? expected_format
#=> false
input = "+1111-012345689"
input.match? expected_format
#=> false
推荐阅读
- php - Laravel 没有创建没有错误的记录
- excel - 活动单元格查找行中的最后一列 vba
- java - 如何为时间戳签名启用 LTV 并设置不允许更改 pdf?
- java - 在 Linux 中以 1 KHz 频率调度任务
- wordpress - 主页重定向到未找到的其他位置
- asp.net - 如何使用社交 IdP 构建身份验证?
- python - 使用 imageio.readvol() 从文件夹中读取所有图像(jpg)
- powershell - 带有 CSV 文件的 Powershell 随机团队生成器
- ssl - svn 命令因 SSL 失败:Solaris 上的数据包长度错误
- python - 检测路线是否不是Flask中装饰器的最外层/错误“顺序”