首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用regex验证Rails的空行(无数字)

如何使用regex验证Rails的空行(无数字)
EN

Stack Overflow用户
提问于 2016-10-09 13:08:54
回答 1查看 84关注 0票数 1

我想验证电话字段,telephone1,telephone2,contactNumber为8位,第一个数字以2-3,5-9开头。它适用于验证,但如果电话2或contactNumber为空,则不起作用。如何将regex设置为适合带有此约束的空行(无数字)?

代码语言:javascript
运行
复制
class Invitation < ApplicationRecord
  validates :church,  presence: true, length: { maximum: 50 }
  VALID_PHONE_REGEX = /\A[2-3,5-9]\d{7}\z/
  validates :telephone1, presence: true,
                format: { with: VALID_PHONE_REGEX },
                uniqueness: { case_sensitive: false }
  validates :telephone2, presence: false,
                format: { with: VALID_PHONE_REGEX },
                uniqueness: { case_sensitive: false }
  validates :contactNumber, presence: false, 
                format: { with: VALID_PHONE_REGEX },
                uniqueness: { case_sensitive: false }
end

谢谢

李志伟

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-09 15:29:39

您似乎可以使用以下选项(请参阅本参考):

代码语言:javascript
运行
复制
allow_blank: true

如果属性值为blank?,例如nil或空字符串,此选项将允许验证通过。

此外,如果您希望regex模式与您需要的数字或空字符串匹配,则可以使用可选的非捕获组(?:...)?括住整个模式。

代码语言:javascript
运行
复制
/\A(?:[2-35-9]\d{7})?\z/
   ^^^             ^^

regex演示

我猜你认为逗号分隔字符类中的范围。实际上,它与字面逗号相匹配。因此,我建议将其从模式中删除。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39943982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档