ruby-on-rails - 在 Ruby 中,我可以在不使用正则表达式的情况下检查字符串是否包含字母吗?

标签 ruby-on-rails ruby string include

我正在使用 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/

相关文章:

javascript - 在 JavaScript 中使用带有字符串的开关

ruby-on-rails - 在动态方法中更改实例变量(使用 ActiveResource 的动态资源)

ruby-on-rails - 如何在 Rails 中启用日志记录?

ruby - 查找名称与模式匹配的元素

c# - 将 String 转换为相应的 Forms.Keys 值?

c - 这个c代码行是做什么的? (const VAR = "string";)

ruby-on-rails - 将用户输入转换为整数

javascript - ruby on Rails 中的自定义订购

ruby-on-rails - 删除 x 个尾随字符(如果存在)?

ruby - 如何将 ruby​​ 路径从/usr/bin/ruby 更改为/usr/local/bin/ruby