Ruby 如何使正则表达式通过这些条件
我想用正则表达式来验证一个电话号码的长度,但只有两个条件。首先,它的长度应该是10 字符串长度应为10位,可以是以下任意数字Ruby 如何使正则表达式通过这些条件,ruby,regex,Ruby,Regex,我想用正则表达式来验证一个电话号码的长度,但只有两个条件。首先,它的长度应该是10 字符串长度应为10位,可以是以下任意数字 4345623467 若字符串的长度是11,那个么应该以1开头 14345623467 长度可以是10或11。其他长度应无效 感谢您的帮助。以下正则表达式匹配以1开头的10位或11位数字序列,或者匹配正好10位数字的任意序列: /^?:1\d{9,10}|\d{10}$/ 下面是它的分解方式,以便您可以使用正则表达式变得更强大:
4345623467
若字符串的长度是11,那个么应该以1开头
14345623467
长度可以是10或11。其他长度应无效
感谢您的帮助。以下正则表达式匹配以1开头的10位或11位数字序列,或者匹配正好10位数字的任意序列: /^?:1\d{9,10}|\d{10}$/ 下面是它的分解方式,以便您可以使用正则表达式变得更强大: /^?:1\d{9,10}|\d{10}$/ │├─┘ ├──────┘ ├────┘ └ 绳子的末端。 ││ │ └ 任何数字重复十次。 ││ └ 任何数字0-9重复9或10次。 │└ 由两个可能的匹配项组成的非匹配组,由管道?:…|。。。 └ 字符串的开头。 这应该做到:
/^(\d{10}|1\d{10})$/
更简单的一个:可选1后跟10位数字
/^1?\d{10}$/
为上面的字符串制作正则表达式,因为我在正则表达式方面非常弱。你在任何事情上做得更好的方法都是通过尝试,而不是要求