Ruby 如何验证字符串只包含0和1?
我有一个字符串,它应该只由Ruby 如何验证字符串只包含0和1?,ruby,string,validation,Ruby,String,Validation,我有一个字符串,它应该只由0和1组成。如果字符串有任何其他字符(包括特殊字符),则验证应返回false;否则它应该返回一个true 如何实现这一点?使用 以下是一种方法: def only_1_and_0(s) !(/[^10]/ === s) end only_1_and_0('11012') # => false only_1_and_0('1101') # => true 使用 以下是一种方法: def only_1_and_0(s) !(/[^10]/ === s
0
和1
组成。如果字符串有任何其他字符(包括特殊字符),则验证应返回false;否则它应该返回一个true
如何实现这一点?使用
以下是一种方法:
def only_1_and_0(s)
!(/[^10]/ === s)
end
only_1_and_0('11012') # => false
only_1_and_0('1101') # => true
使用
以下是一种方法:
def only_1_and_0(s)
!(/[^10]/ === s)
end
only_1_and_0('11012') # => false
only_1_and_0('1101') # => true
试试这个:
def only_0_and_1(str)
return !!(str =~ /^(0|1)+$/)
end
试试这个:
def only_0_and_1(str)
return !!(str =~ /^(0|1)+$/)
end
以下假设您的方法将始终接收字符串;它不执行任何强制或类型检查。如果您需要,可以随意添加
def binary? str
! str.scan(/[^01]/).any?
end
这将扫描字符串中除0或1以外的任何字符,然后返回一个反向布尔值,如果为true,则该值将计算为false,这意味着字符串中存在其他字符。例如:
binary? '1011'
#=> true
binary? '0b1011'
#=> false
binary? '0xabc'
#=> false
以下假设您的方法将始终接收字符串;它不执行任何强制或类型检查。如果您需要,可以随意添加
def binary? str
! str.scan(/[^01]/).any?
end
这将扫描字符串中除0或1以外的任何字符,然后返回一个反向布尔值,如果为true,则该值将计算为false,这意味着字符串中存在其他字符。例如:
binary? '1011'
#=> true
binary? '0b1011'
#=> false
binary? '0xabc'
#=> false
另一种方法是:
str.chars.any?{|c| c!='0' && c!='1'}
另一种方法是:
str.chars.any?{|c| c!='0' && c!='1'}