regulares expresiones example ruby-on-rails ruby regex ruby-on-rails-3 gsub

ruby-on-rails - expresiones - gsub ruby example



¿Cómo determinar si hay una coincidencia y una devolución verdadera o falsa en los rieles? (4)

Esto coincidirá con:

/^r/+.*@site.com$/

Ejemplos:

>> ''[email protected]'' =~ /^r/+.*@site.com$/ #=> 0 >> ''[email protected]'' =~ /^r/+.*@site.com$/ #=> nil

Como todo lo que no es nil o false es verdadero en Ruby, puedes usar esta expresión regular en una condición. Si realmente quieres un booleano puedes usar el !! idioma:

>> !!(''[email protected]'' =~ /^r/+.*@site.com$/) #=> false >> !!(''[email protected]'' =~ /^r/+.*@site.com$/) #=> true

Quiero crear una prueba que devuelva verdadero o falso para el manejo del correo electrónico.

Por ahora, si la dirección de correo electrónico comienza con r +, entonces es cierto, de lo contrario es falso. Esto ayudará a nuestro servidor a ignorar gran parte del SPAM con el que nos estamos golpeando.

Ejemplos:

[email protected] .. true [email protected] .. true [email protected] .. FALSE

¿Cuál es la manera más eficiente de manejar esto con Rails / ruby ​​/ regex?

Gracias

GOL

Es un forro en rieles / rubí con:

ABORT if XXXXX == 0


Puedes usar el operador ''==='' también

/f/ === ''foo'' #=> true /f/ === ''bat'' #=> false

Nota: la parte de expresiones regulares está a la izquierda:

/ YOUR_REGEX / === ''YOUR_STRING''


Si estás en Rails, hay un starts_with? Método en cuerdas:

"foo".starts_with?(''f'') # => true "foo".starts_with?(''g'') # => false

Fuera de Rails, las expresiones regulares son una solución razonable:

"foo" =~ /^f/ # => true "foo" =~ /^g/ # => false

Debido a que Ruby usa la verdad en las declaraciones if, si terminas usando expresiones regulares, puedes usar el valor de retorno para cambiar:

if "foo" =~ /^f/ puts "Was true!" else puts "Was false!" end

Si estás escribiendo un método y quieres devolver un resultado booleano, siempre puedes usar el truco del doble golpe:

def valid_email? !!("foo" =~ /^f/) end

Rubular (rubular.com) es un buen sitio para probar las expresiones regulares de Ruby pre-1.9. (Las expresiones regulares de 1.9 agregaron cosas como lookahead).


Si no quieres usar un "!!" operador:

!!("foo" =~ /^f/)

podría usar un operador ternario (podría parecer más obvio):

"foo" =~ /^f/ ? true : false