隐藏部分电子邮件域
Hide part of email domain
当用户尝试重置密码时,我试图在我的视图中隐藏电子邮件的域部分,我使用的是 gsub,但我遇到了 2 个字符的并集问题。
示例:
"myemail@example.com".gsub(/.{0,4}@/,'####@')
我得到了这个结果:
"my###\#@example.com"
我不想在 ## 中间那个 \,我进入了控制台,如果我只写 '#@'
我得到了 "\#@"
,我不知道如何转义这些字符。
用这个方法我也有问题,如果域少于 4 个字母我仍然放 4 '#'s in the domain. But my primary concern is about the junction of '#@'。
你很好; # 由 irb 或 pry 为您转义以在其漂亮的打印中消除歧义,因为 #@ 可以引用全局变量的插值(请参阅 Why does string interpolation work in Ruby when there are no curly braces?)。反斜杠实际上不在字符串中,您可以通过显式打印来验证:
print("myemail@example.com".gsub(/.{0,4}@/,'####@'))
如果@
作为@example
的一部分,没有转义,前面有'#'
,Ruby插入实例变量的值@example
.
假设:
@example = 'hi'
"my####@example.com" #=> "my###.com"
如果没有实例变量@example
,引用它returns nil
,它被转换为一个空字符串。
"my####@example.com" #=> "my###.com"
这也可以用全局变量来完成:
$example = 'ho'
"my####$example.com" #=> "my###ho.com"
并带有 class 个变量:
@@example = 'hum'
"my####@@example.com" #=> "my###hum.com"
当用户尝试重置密码时,我试图在我的视图中隐藏电子邮件的域部分,我使用的是 gsub,但我遇到了 2 个字符的并集问题。
示例:
"myemail@example.com".gsub(/.{0,4}@/,'####@')
我得到了这个结果:
"my###\#@example.com"
我不想在 ## 中间那个 \,我进入了控制台,如果我只写 '#@'
我得到了 "\#@"
,我不知道如何转义这些字符。
用这个方法我也有问题,如果域少于 4 个字母我仍然放 4 '#'s in the domain. But my primary concern is about the junction of '#@'。
你很好; # 由 irb 或 pry 为您转义以在其漂亮的打印中消除歧义,因为 #@ 可以引用全局变量的插值(请参阅 Why does string interpolation work in Ruby when there are no curly braces?)。反斜杠实际上不在字符串中,您可以通过显式打印来验证:
print("myemail@example.com".gsub(/.{0,4}@/,'####@'))
如果@
作为@example
的一部分,没有转义,前面有'#'
,Ruby插入实例变量的值@example
.
假设:
@example = 'hi'
"my####@example.com" #=> "my###.com"
如果没有实例变量@example
,引用它returns nil
,它被转换为一个空字符串。
"my####@example.com" #=> "my###.com"
这也可以用全局变量来完成:
$example = 'ho'
"my####$example.com" #=> "my###ho.com"
并带有 class 个变量:
@@example = 'hum'
"my####@@example.com" #=> "my###hum.com"