Ruby on rails 在ruby中,我如何检查没有';不要从9开始?
我需要使用require表达式或ruby方式验证社会保险号,这样第一个数字就不会以9开头。有什么建议吗?这就是我所拥有的:Ruby on rails 在ruby中,我如何检查没有';不要从9开始?,ruby-on-rails,ruby,regex,Ruby On Rails,Ruby,Regex,我需要使用require表达式或ruby方式验证社会保险号,这样第一个数字就不会以9开头。有什么建议吗?这就是我所拥有的:/^\d{3}-\d{2}-\d{4}$/警告未经测试的正则表达式如下: /^[0-8][0-9]{2}-[0-9]{2}-[0-9]{4}$/警告未经测试的正则表达式如下: 这是基本的。我建议您学习正则表达式教程。只需将第一个数字更改为0-8: /^[0-8]\d{2}-\d{2}-\d{4}$/ 这是。这是基本的。我建议您学习正则表达式教程。只需将第一个数字更改为0-8
/^\d{3}-\d{2}-\d{4}$/
警告未经测试的正则表达式如下:
/^[0-8][0-9]{2}-[0-9]{2}-[0-9]{4}$/
警告未经测试的正则表达式如下:
这是基本的。我建议您学习正则表达式教程。只需将第一个数字更改为0-8:
/^[0-8]\d{2}-\d{2}-\d{4}$/
这是。这是基本的。我建议您学习正则表达式教程。只需将第一个数字更改为0-8:
/^[0-8]\d{2}-\d{2}-\d{4}$/
这里是。添加一个负面展望
/\A(?!9)\d{3}-\d{2}-\d{4}\z/
添加一个消极的前瞻
/\A(?!9)\d{3}-\d{2}-\d{4}\z/
验证带或不带破折号的SS编号,破折号不以
9开头
if subject =~ /\A(?:^(?!9)\d{3}-\d{2}-\d{4}$|^(?!9)\d{9}$)\Z/
# Successful match
else
# Match attempt failed
end
正则表达式解释:
验证带或不带破折号的SS编号,破折号不以9开头
if subject =~ /\A(?:^(?!9)\d{3}-\d{2}-\d{4}$|^(?!9)\d{9}$)\Z/
# Successful match
else
# Match attempt failed
end
正则表达式解释:
谢谢马克,我以前试过,但没用。@NicholasAlek定义“不起作用”,也就是说,它失败的测试用例是什么?谢谢马克,我以前试过,但它不起作用。@NicholasAlek定义“不起作用”,也就是说,它失败的测试用例是什么?如果你没有测试它,不要发布它。您可以在测试ruby正则表达式,如果您还没有测试过,请不要发布它。您可以在以下位置测试ruby regex:您可以提供一些上下文相关的代码吗?如果您没有得到任何给定的解决方案,那么除了正则表达式本身之外,可能还有其他问题。您能提供一些上下文相关的代码吗?如果你没有得到任何给定的解决方案,那么可能除了正则表达式本身之外,还有其他问题。我不知道该用哪一个,这一个还是公认答案中的一个。我不知道该用哪一个,这一个还是公认答案中的一个