如何使用Ruby检查字符串中是否至少包含一个数字?

时间:2010-02-08 20:52:04

标签: ruby regex string numbers

我需要检查一个字符串是否包含至少一个使用Ruby的数字(我假设某种正则表达式?)。

我该怎么做?

5 个答案:

答案 0 :(得分:35)

您可以使用String类的=~方法,并使用正则表达式/\d/作为参数。

以下是一个例子:

s = 'abc123'

if s =~ /\d/         # Calling String's =~ method.
  puts "The String #{s} has a number in it."
else
  puts "The String #{s} does not have a number in it."
end

答案 1 :(得分:7)

或者,不使用正则表达式:

def has_digits?(str)
  str.count("0-9") > 0
end

答案 2 :(得分:5)

if /\d/.match( theStringImChecking ) then
   #yep, there's a number in the string
end

答案 3 :(得分:2)

我没有使用像“s =〜/ \ d /”这样的东西,而是选择较短的s [/ \ d /],它返回nil表示未命中(条件测试中为AKA false)或命中的索引(AKA在条件测试中是真的)。如果需要实际值,请使用s [/(\ d)/,1]

它应该都是一样的,并且在很大程度上是程序员的选择。

答案 4 :(得分:1)

!s[/\d/].nil?

可以是独立功能 -

def has_digits?(s)
  return !s[/\d/].nil?
end

或...将它添加到String类使它更方便 -

class String
  def has_digits?
    return !self[/\d/].nil?
  end
end