【发布时间】:2017-05-23 00:31:22
【问题描述】:
我正在使用 Rails 5。我想知道一个变量(你可以假设它是一个字符串)是否包含至少一个字母(大写或小写)。但是,我不想使用正则表达式(我注意到如果编码不是 UTF-8,正则表达式往往会崩溃)。所以我想知道如何检查一个字符串是否至少包含一个字母。
这行不通
input.downcase.include?("abcdefghijklmnopqrstuvwxyz")
【问题讨论】:
-
你有一个具体的例子,非 UTF8 字符串的正则表达式失败?
-
“ö”是字母吗? “ç”是字母吗? “я”是字母吗?
-
@mudasobwa :看起来不是这样,Natalia 提供了一个可接受的字符字符串。
-
Natalia,当可能出现非 ASCII 字符时,您可以使用
str =~ /[[:alpha:]]/或str =~ /\p{Alpha}/。在Regexp 中搜索“POSIX”和“字符属性”。 -
他们很可能得到
ArgumentError: invalid byte sequence in US-ASCII,这是 Ruby 中正则表达式的一个非常烦人的行为。
标签: ruby-on-rails ruby string include