3
A
回答
2
如果为空字符串被允许:
def contains_non_digit(array)
!array.select {|s| s =~ /^.*[^0-9].*$/}.empty?
end
说明:此滤波器的阵列,用于匹配所有字符串正则表达式。这个正则表达式适用于包含至少一个非数字字符的字符串。如果结果数组为空,则数组不包含非数字字符串。最后,我们需要否定结果,因为我们想知道数组包含非数字字符串。
8
arr.all? { |s| s =~ /^\d+$/ }
这将检查每一个元素,如果它仅由数字(\d
) - 如果其中任何一个没有,假将被退回。
编辑:您没有完全指定空字符串是否有效。如果是,该线具有被重写(按照DarkDust)如下:
arr.all? {|s| s =~ /^\d*$/ }
+1,不知道'all?'。但是,如果允许空字符串,我只需要's =〜/^\ d * $ /'来代替。 – DarkDust 2012-03-09 07:24:54
够公平的。 :) – 2012-03-09 07:28:51
相同,但相反:'arr.any? {| S | s =〜/^[^ \ d] + $ /}' – 2012-03-09 07:36:37