仅包含数字的输入的Regex数据验证



我试图提示用户输入数据值,并检查他们输入的字符串是否只包含数字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

但是,此循环在除0以外的所有其他数字上返回false。我以前使用过regex = /A[1-9]z/,但我回到它工作的地方,它不再工作了,这也意味着用户不能输入0

如何使用正则表达式验证用户输入仅包含数字0-9?

[1-9]之后添加一个+量词(难道不应该是[0-9]吗?你想要从0到9的数字吗?)。即regex = /A[0-9]+z/

您可以将字符类[0-9]表示为d,这样regex看起来更整洁:Ad+z

+检查字符串中一个数字是否出现一次(最少)或多次。现在,您正在检查是否只存在一个数字。

s !~ /D/

最新更新