我怎样才能检查一个单词在Ruby中已经全部大写了?

Jac*_*cob 24 ruby

我希望能够检查一个单词是否全部是大写的.它也可能包括数字.

例:

GO234 => yes
Go234 => no
Run Code Online (Sandbox Code Playgroud)

JCo*_*era 47

您可以将字符串与相同的字符串进行比较,但是大写:

'go234' == 'go234'.upcase  #=> false
'GO234' == 'GO234'.upcase  #=> true
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助

  • 这仅适用于ASCII.从[精细手册](http://ruby-doc.org/core-1.9.3/String.html#method-i-upcase):"操作是区域设置不敏感的字符"a"到"z"注意:案例替换仅在ASCII区域有效." (2认同)

Pet*_*ong 25

a = "Go234"
a.match(/\p{Lower}/) # => #<MatchData "o">

b = "GO234"
b.match(/\p{Lower}/) # => nil

c = "123"
c.match(/\p{Lower}/) # => nil

d = "µ"
d.match(/\p{Lower}/) # => #<MatchData "µ">
Run Code Online (Sandbox Code Playgroud)

因此,当匹配结果为nil时,它已经是大写的,否则是小写的.

谢谢@mu太短了,我们应该使用/\p {Lower} /来匹配非英文小写字母.

  • 你可能想要`/\p {Lower} /`1.9.比较''μ'.match(/ [az] /)`和''μ'.match(/\p {Lower} /)`. (6认同)
  • 最好使用[Unicode属性](http://www.geocities.jp/kosako3/oniguruma/doc/RE.txt)进行此类操作. (3认同)