我正在查看字符串是否是Rails中的所有大写字母。 我该怎么做呢?
我正在编写自己的自定义复数辅助方法,我会传递像“WORD”这样的词语,有时会传递“Word” - 我想测试我的单词是否全部为大写所以我可以返回“WORDS” - 如果这个词是复数(与“WORDs”相对),则最后是“S”。
谢谢!
答案 0 :(得分:23)
这样做:
str == str.upcase
E.g:
str = "DOG"
str == str.upcase # true
str = "cat"
str == str.upcase # false
因此,您的方案的代码将是:
# In the code below `upcase` is required after `str.pluralize` to transform
# DOGs to DOGS
str = str.pluralize.upcase if str == str.upcase
答案 1 :(得分:2)
或者这个:
str =~ /^[A-Z]+$/
e.g:
"DOG" =~ /^[A-Z]+$/ # 0
"cat" =~ /^[A-Z]+$/ # nil
答案 2 :(得分:2)
感谢正则表达式,它非常简单。只需使用允许所有大写字母的[[:upper:]]
字符类,包括但不限于ASCII-8中的字母。
具体取决于您的需求:
# allows upper case characters only
/\A[[:upper:]]*\Z/ =~ "YOURSTRING"
# additionally disallows empty strings
/\A[[:upper:]]+\Z/ =~ "YOURSTRING"
# also allows white spaces (multi-word strings)
/\A[[:upper:]\s]*\Z/ =~ "YOUR STRING"
# allows everything but lower case letters
/\A[^[:lower:]]*\Z/ =~ "YOUR 123_STRING!"