如何使用Ruby測試字符串是否基本上是引號中的整數我需要一個功能is_an_integer,在哪里"12".is_an_integer? 返回true。"blah".is_an_integer? 返回false。我怎么能用Ruby做到這一點?我會寫一個正則表達式,但我假設有一個幫助,我不知道。
3 回答

DIEA
TA貢獻1820條經驗 獲得超2個贊
您可以使用正則表達式。這是@ janm建議的功能。
class String def is_i? !!(self =~ /\A[-+]?[0-9]+\z/) endend
根據@wich的評論編輯的版本:
class String def is_i? /\A[-+]?\d+\z/ === self endend
如果您只需要檢查正數
if !/\A\d+\z/.match(string_to_check) #Is not a positive number else #Is all good ..continue end

紅顏莎娜
TA貢獻1842條經驗 獲得超13個贊
您可以使用Integer(str)
并查看它是否會引發:
def is_num?(str) !!Integer(str)rescue ArgumentError, TypeError falseend
應該指出的是,雖然這確實會返回"01"
,但它并不適用"09"
,因為它不是09
有效的整數文字。如果這不是您想要的行為,您可以添加10
第二個參數Integer
,因此該數字始終被解釋為基數10。
- 3 回答
- 0 關注
- 705 瀏覽
添加回答
舉報
0/150
提交
取消