Ruby没有isalpha吗?

siv*_*udh 11 ruby

像Python一样?我正在尝试检查字符串中的每个字符是否都是字母数字?

tad*_*man 21

这有一个特殊的字符类:

char.match(/^[[:alpha:]]$/)
Run Code Online (Sandbox Code Playgroud)

这应该匹配单个字母字符.它似乎也适用于UTF-8.

要测试整个字符串:

string.match(/^[[:alpha:]]+$/)
Run Code Online (Sandbox Code Playgroud)

请记住,这不考虑空格或标点符号.


Ser*_*sev 18

你可以滚你自己:)替换alnumalpha,如果你想匹配的字母,没有数字.

class String
  def alpha?
    !!match(/^[[:alnum:]]+$/)
  end
end

'asdf234'.alpha? # => true
'asdf@#$'.alpha? # => false
Run Code Online (Sandbox Code Playgroud)

  • 或者更像红宝石:`#alpha?`. (2认同)
  • @steenslag:这是有争议的:) (2认同)

ste*_*lag 5

python函数仅适用于ASCII字符; [[:alnum]]正则表达式会做"tëst".alpha这样的事情?=>是的. match/\w/匹配下划线,以便离开

def isalpha(str)
  return false if str.empty?
  !str.match(/[^A-Za-z]/)
end
Run Code Online (Sandbox Code Playgroud)

重现Python的行为.