隐藏电子邮件地址的一部分

时间:2013-08-13 10:32:43

标签: ruby-on-rails ruby

使用ruby例如

在电子邮件地址的@符号前隐藏4个字符的最佳方法是什么
fakename@example.com = fake####@example.com 

当我显示推荐列表并且我不想显示整个地址时,它将在视图中使用。

我的漫长尝试:

name = 'fakename@example.com'.split("@")[0]
email = 'fakename@example.com'.split("@")[1]
new_address = name [0..-4] + "@" + email

3 个答案:

答案 0 :(得分:5)

尝试下面甚至可以处理短名称,如a@example.com

'fakename@example.com'.gsub(/.{0,4}@/, '####@')

答案 1 :(得分:1)

'fakename@example.com'.gsub(/.{4}@/, '####@')
 => fake####@example.com

但它不会处理短名称(a@example.com => a@example.com)

答案 2 :(得分:0)

您可以使用正则表达式匹配并替换电子邮件地址。只找到连续四个字符后跟一个@并将替换字符串赋予####@红宝石中的正则表达式被认为非常有效。

将此正则表达式用于第一场比赛/[a-z.]{4}@/