【发布时间】:2021-10-24 04:25:58
【问题描述】:
我一直在寻找一种查看项目字符串是否都是数字的好方法,并认为可能有一种方法可以指定从 0 到 9 的范围并查看它们是否包含在字符串中,但是我在网上查到的所有东西都让我很困惑。
def validate_pin(pin)
(pin.length == 4 || pin.length == 6) && pin.count("0-9") == pin.length
end
上面的代码是别人的作品,我一直在尝试确定它是如何工作的。它是一个 pin 检查器 - 接受一组字符并确保字符串是 4 位或 6 位数字和所有数字 - 但范围是如何工作的?
当我做这个问题时,我尝试使用 to_a?整数和一堆其他的东西,包括范围如 (0..9) 和 ("0..9) 和 ("0".."9") 来验证一个字符是一个整数。当我看到 ("0 -9) 它把我弄糊涂了,半小时的谷歌搜索和 youtube 只给我留下了正则表达式教程(我对此很感兴趣,但目前只是想了解基础知识)
总而言之,我的目标是了解一种更语义/更简洁的方法来识别字符是否为整数。无论是最简单的方法。欢迎所有和任何反馈。我是一名新的红宝石学家,并试图了解我的基本面。谢谢。
【问题讨论】:
-
"....查看一串项目是否都是数字..." 不清楚。
"-24-12"呢?我认为您的意思是,“....查看字符串是否仅包含数字 0-9”`。 -
是的,这确实是我理解的目标
-
@DavidVenegas : _ 如果一个字符是一个整数_ : 你真的是指 一个字符,还是你的意思是 _ 一个字符串_?如果您引用字符串,您是否允许在前面加上
-来表示否定?如果是,您是否允许在减号和第一个数字之间留有空格?请在您的问题中更具体一点。 -
@user1934428 我的问题应该很简单,但我有点忘乎所以。这就是我想要理解的。 问题: 通过用连字符分隔两个数字并用引号和括号括起来,你得到一个数组吗?我在问 ("0-9") 是否基本上是 [0,1,2,3,4,5,6,7,8,9]。
标签: ruby-on-rails ruby rspec rubygems rspec-rails