我尝试提示用户输入数据值,并检查他们输入的字符串是否只包含数字0-9:
class String
def validate(regex)
!self[regex].nil?
end
end
regex = /\A[0-9]\z/
validInput = false
until validInput
puts "Enter digits: "
input = gets.chomp
if !input.validate(regex)
puts "Invalid input. Seeking integer."
else
validInput = true
end
end
然而,除了false
之外的其他所有内容,此循环返回0
。我以前使用过此regex = /\A[1-9]\z/
,但我会回到它工作的地方,它不再存在,这也意味着用户无法输入0
。
如何使用正则表达式验证用户输入是否仅包含数字0-9?
答案 0 :(得分:2)
在+
之后添加[1-9]
量词(不应该是[0-9]
你想要0到9的数字吗?)。即regex = /\A[0-9]+\z/
您可以将字符类[0-9]
表示为\d
,以便正则表达式看起来更整洁:\A\d+\z
+
检查字符串中一个(最少)次出现的数字。现在,您正在检查是否只有 ONE 数字。
答案 1 :(得分:1)
s !~ /\D/
.....................