2012-03-09 19 views

答えて

2

def contains_non_digit(array) 
    !array.select {|s| s =~ /^.*[^0-9].*$/}.empty? 
end 

説明:これは、一致するすべての文字列の配列をフィルタリングし、それがある場合(DarkDustごとに)以下のように、行を書き換えする必要があります正規表現。この正規表現は、少なくとも1つの非数字文字を含む文字列に当てはまります。結果の配列が空の場合、配列には数字以外の文字列は含まれません。最後に、配列にはに数字以外の文字列が含まれていることを知りたいので、結果を否定する必要があります。

8
arr.all? { |s| s =~ /^\d+$/ } 

それは桁(\d)のみから構成される場合は、各要素をチェックします - それらのいずれかがない場合は、falseが返されます。

編集:空の文字列が有効かどうかは完全には指定していません。空の文字列が許可されている場合

arr.all? {|s| s =~ /^\d*$/ } 
+1

+1、「すべて」について知りませんでした。しかし、もし空の文字列が許されていれば、 's =〜/^\ d * $ /'の代わりに使うだけです。 – DarkDust

+0

十分です。 :) –

+0

同じですが、他の方法: 'arr.any? {| s | –

関連する問題