隐藏部分电子邮件地址

问题描述 投票:0回答:4

使用 ruby 例如隐藏电子邮件地址 @ 符号前 4 个字符的最佳方法是什么

[email protected] = fake####@example.com 

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

我的长途尝试:

name = '[email protected]'.split("@")[0]
email = '[email protected]'.split("@")[1]
new_address = name [0..-4] + "@" + email
ruby-on-rails ruby
4个回答
6
投票

尝试下面的方法,甚至可以处理短名称,例如 [电子邮件受保护]

'[email protected]'.gsub(/.{0,4}@/, '####@')

1
投票
'[email protected]'.gsub(/.{4}@/, '####@')
 => fake####@example.com

但它不会处理短名称([电子邮件受保护] => [电子邮件受保护]


0
投票

您可以使用正则表达式来匹配和替换电子邮件地址。只需找到四个连续字符,后跟 @ 并给出替换字符串即可

####@
ruby 中的正则表达式被认为非常高效。

在第一场比赛中使用此正则表达式

/[a-z.]{4}@/


0
投票
'[email protected]'.gsub(/(?<=.{2}).(?=[^@]*?.{3}@)/, '*')
# => "sa*******[email protected]"
© www.soinside.com 2019 - 2024. All rights reserved.