我正在使用 Rails 5。我想知道一个变量(您可以假设它是一个字符串)是否至少包含一个字母(大写或小写)。但是,我不想使用正则表达式(我注意到如果编码不是 UTF-8,正则表达式往往会崩溃)。所以我想知道如何检查一个字符串是否至少有一个字母。
这行不通
input.downcase.include?("abcdefghijklmnopqrstuvwxyz")
最佳答案
试试这个
str.count("a-zA-Z") > 0
计数
function接受字符集作为参数。
尽管如此,这可能仍然会失败并返回 ArgumentError: invalid byte sequence in UTF-8
。如果您的输入无效,则可能无法解决编码问题。
注意,这会扫描整个字符串,但 downcase
也是如此。对于性能基准,请参阅 Eric 的回答,最坏情况和最佳情况之间的性能差异很大。与往常一样,可读性先于过早优化。
关于ruby-on-rails - 在 Ruby 中,我可以在不使用正则表达式的情况下检查字符串是否包含字母吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41536289/