首页 > 解决方案 > 正则表达式电子邮件:ruby 中电子邮件的数字 + 格式

问题描述

我的数据库中有一个字段电子邮件,也调用应该具有这种格式的电子邮件:123456789@pac.gmail.com其中123456789应该是数字和长度为 9。

在我的模型中,我尝试使用以下代码为我的用户格式化:

class Email < ApplicationRecord
    EMAIL_PATTERN = /^[0-9]+/@pac.gmail.com
    LENGTH = 9
    validates :email, presence: true, format: EMAIL_PATTERN, length: LENGTH
end

但是我有一个错误unexpected tIVAR, expecting end,但我不明白为什么END我的代码中应该有一个,因为我没有启动任何循环或其他东西,有没有人知道如何以正确的方式格式化电子邮件以及为什么我有这种错误?

标签: ruby-on-railsregexrubymodel-view-controller

解决方案


无需单独检查长度;你可以在你的正则表达式中做到这一点。如果我理解正确,您要确保后面有 9 位数字@pac.gmail.com。你可以这样做:

class Email < ApplicationRecord
  EMAIL_PATTERN = /\A[0-9]{9}@pac.gmail.com\z/
  validates :email, presence: true, format: EMAIL_PATTERN
end

推荐阅读