blank - La forma más sencilla de verificar si hay espacios en Ruby
blank rails (7)
"mejor" depende del contexto, pero aquí hay una manera simple.
some_string.strip.empty?
Así que sé en ruby que x.nil? probará si x es nulo.
¿Cuál es la forma más sencilla de probar si x es igual a '''', o '''' (dos espacios), o '''' (tres espacios), etc.?
Básicamente, me pregunto cuál es la mejor manera de probar si una variable es todo el espacio en blanco.
Basado en tu comentario, creo que puedes extender la clase String y definir spaces?
método de la siguiente manera:
$ irb
>> s = " "
=> " "
>> s.spaces?
NoMethodError: undefined method `spaces?'' for " ":String
from (irb):2
>> class String
>> def spaces?
>> x = self =~ /^/s+$/
>> x == 0
>> end
>> end
=> nil
>> s.spaces?
=> true
>> s = ""
=> ""
>> s.spaces?
=> false
>>
Si x
es todo el espacio en blanco, entonces x.strip
será la cadena vacía. Así que puedes hacer:
if not x.nil? and x.strip.empty? then
puts "It''s all whitespace!"
end
Alternativamente, utilizando una expresión regular, x =~ //S/
devolverá false si y solo si x
es todos los caracteres de espacio en blanco:
if not (x.nil? or x =~ //S/) then
puts "It''s all whitespace!"
end
Si está utilizando Rails, simplemente puede usar:
x.blank?
Es seguro llamar a esta opción cuando x es nulo, y devuelve verdadero si x es nulo o todo el espacio en blanco.
Si no está utilizando Rails, puede obtenerlo de la gema de activesupport
. Instalar con gem install activesupport
. En su archivo, require ''active_support/core_ext
para obtener todas las extensiones de soporte activas para las clases base, o require ''active_support/core_ext/string''
para obtener solo las extensiones de la clase String
. De cualquier manera, el blank?
El método estará disponible después de la necesidad.
Sin embargo, otro :) string.all? { |c| c == '' '' }
string.all? { |c| c == '' '' }
a = " "
a.each_byte do |x|
if x == 32
puts "space"
end
end
s =~ //A/s*/Z/
Solución Regex. Aquí hay un breve tutorial ruby regex .