Filter 如何从文本字段筛选电子邮件地址

Filter 如何从文本字段筛选电子邮件地址,filter,ruby-on-rails-4,word,Filter,Ruby On Rails 4,Word,我为一个客户工作,他想从文本字段中过滤电子邮件地址,在文本字段中,每个文本都会被分析,电子邮件地址会被类似于####$$的内容所取代 我提前感谢您的帮助。您可以在带有正则表达式的文本中找到所有电子邮件地址,例如/\S*\@\S*/(,可能并不完美),然后用您选择的任何内容替换所有匹配项 email_regex = /\S*\@\S*/ text = "This is test@example.com test string. Regex is regex@example.co.uk amazin

我为一个客户工作,他想从文本字段中过滤电子邮件地址,在文本字段中,每个文本都会被分析,电子邮件地址会被类似于
####$$
的内容所取代


我提前感谢您的帮助。

您可以在带有正则表达式的文本中找到所有电子邮件地址,例如
/\S*\@\S*/
(,可能并不完美),然后用您选择的任何内容替换所有匹配项

email_regex = /\S*\@\S*/
text = "This is test@example.com test string. Regex is regex@example.co.uk amazing."

result = text.gsub(email_regex, 'email_has_been_replaced')

p result
# => "This is email_has_been_replaced test string. Regex is email_has_been_replaced amazing."
在ActiveRecord模型中:

class Post < AR::B
  EMAIL_REGEX = /\S*\@\S*/
  before_validation :remove_email_addresses_from_body

  private

  def remove_email_addresses_from_body
    self.body = body.gsub(EMAIL_REGEX, 'hidden_email')
  end
end
class Post
如何将其放入模型中?例如,您可以在保存之前替换
中的电子邮件地址,或者在验证之前替换
中的电子邮件地址。谢谢,很高兴提供帮助:D。