gpt4 book ai didi

ruby-on-rails - 在 Rails 2.0/ruby 1.8.6 中,如何在字符串数组中找到非 ascii 字符串?

转载 作者:数据小太阳 更新时间:2023-10-29 07:22:50 25 4
gpt4 key购买 nike

我有一个数组,其中包含从数据库加载的用户登录信息。仅保留包含非 ASCII 字符的登录信息的最简单有效的方法是什么?

logins = Users.find(:all).map{|user|user.login}
logins_with_non_ascii_characters = logins.select{ |login| ...??? }

谢谢

编辑:如果您有一个 SQL 解决方案(我使用 MySQL,但通用解决方案会更好)直接在第一行使用 :conditions 子句过滤掉登录,我'我也同意。事实上,它会更有效率:

logins = Users.find(:all, :conditions => "...???").map{|user|user.login}

最佳答案

你可以为此滥用 Ruby 内置的正则表达式字符类

[:print:] 包含所有 ASCII 可打印字符。它不包含蜂鸣声之类的 ASCII 字符,也不包含重要的多字节字符。

假设您的用户不太可能将 ASCII BEEP 作为其密码中的字符,

#reject if has non-ascii character
valid_users = users.reject! {|user| user.login =~ /[^[:print:]]/}

应该为你做。

关于ruby-on-rails - 在 Rails 2.0/ruby 1.8.6 中,如何在字符串数组中找到非 ascii 字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/939090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com