regex,测试电话号码ruby
所有以这些范围开头的电话号码都正确:例如:772123322 长度很重要,它的末尾应该包含6位数字regex,测试电话号码ruby,ruby,regex,Ruby,Regex,所有以这些范围开头的电话号码都正确:例如:772123322 长度很重要,它的末尾应该包含6位数字 550-559 700-709 770-779 到目前为止,我已经做到了: \A(55[0-9])|(70[0-9])|(77[0-9])\d{6}\z 如何修改此正则表达式以正常工作?更简单的是: \A(55[0-9]|70[0-9]|77[0-9])\d{6}\z /^(55|70|77)\d{7}$/ 更简单的是: /^(55|70|77)\d{7}$/ 这很好,但是您需要注意ru
550-559
700-709
770-779
到目前为止,我已经做到了:
\A(55[0-9])|(70[0-9])|(77[0-9])\d{6}\z
如何修改此正则表达式以正常工作?更简单的是:
\A(55[0-9]|70[0-9]|77[0-9])\d{6}\z
/^(55|70|77)\d{7}$/
更简单的是:
/^(55|70|77)\d{7}$/
这很好,但是您需要注意ruby regexps中
^$
的安全含义。请参阅第7.6节:。改用\A\z
。@Casper这是一个有趣的观点,但在本例中,我们是在匹配行,而不是验证activerecord模型,因此^$更正确。换句话说,text.scan(myregex)将正常运行,而text.scan(yourregex)将不正常运行。这很好,但是您需要了解ruby regexps中^$
的安全含义。请参阅第7.6节:。改用\A\z
。@Casper这是一个有趣的观点,但在本例中,我们是在匹配行,而不是验证activerecord模型,因此^$更正确。换句话说,text.scan(myregex)将正常工作,而text.scan(yourregex)则不会。