我正在解析文件,并且得到以下字符串:
"���email@locale"
如何确保清除包含这些无效字符“?”的字符串?
答案 0 :(得分:1)
有多种方法删除不需要的字符。
"���email@locale".chars.select(&:ascii_only?).join
=> "email@locale"
"���email@locale".gsub(/[^\p{Ascii}]/, '')
=> "email@locale"
这将打破包含国际字符的域名,这在今天已经可以了。
要在@
之前允许使用ascii,然后再使用其后的任何内容,则可以使用以下代码:
sanitized_email = "���email@locale"[/\p{Ascii}+?@[^\s]+/]
# now you can check if the email was valid at all:
raise "invalid email" if sanitized_email.nil?