resumen libro latino fahrenheit espaƱol bradbury audiolibro analisis ruby regex email-validation

libro - Quitar el signo "@" y todo lo que sigue en Ruby



fahrenheit 451 ray bradbury (5)

La String#split será útil. Dada una cadena y un argumento, devuelve una matriz que divide la cadena en elementos separados en esa cadena. Así que si tuvieras:

e = [email protected] e.split("@") #=> ["test", "testing.com"]

Por lo tanto, tomaría e.split("@")[0] para la primera parte de la dirección.

Estoy trabajando en una aplicación en la que necesito transmitir el signo "@" de la dirección de correo electrónico del usuario como su nombre y apellido. Por ejemplo, si el usuario tiene una dirección de correo electrónico "[email protected]" que cuando el usuario envía el formulario, elimino "@ example.com" del correo electrónico y asigno "usuario" como nombre y apellido.

He investigado, pero no pude encontrar una manera de hacerlo en Ruby. Alguna sugerencia ??


Para atrapar cualquier cosa antes del signo @:

my_string = "[email protected]" substring = my_string[/[^@]+/] # => "user"


Puedes dividir en "@" y solo usar la primera parte.

email.split("@")[0]

Eso te dará la primera parte antes de la "@".


Solo divide el símbolo @ y toma lo que fue antes.

string.split(''@'')[0]


usa gsub y una expresión regular

first_name = email.gsub(/@[^/s]+/,"") irb(main):011:0> Benchmark.bmbm do |x| irb(main):012:1* email = "[email protected]" irb(main):013:1> x.report("split"){100.times{|n| first_name = email.split("@")[0]}} irb(main):014:1> x.report("regex"){100.times{|n| first_name = email.gsub(/@[a-z.]+/,"")}} irb(main):015:1> end Rehearsal ----------------------------------------- split 0.000000 0.000000 0.000000 ( 0.000000) regex 0.000000 0.000000 0.000000 ( 0.001000) -------------------------------- total: 0.000000sec user system total real split 0.000000 0.000000 0.000000 ( 0.001000) regex 0.000000 0.000000 0.000000 ( 0.000000) => [#<Benchmark::Tms:0x490b810 @label="", @stime=0.0, @real=0.00100016593933105, @utime=0.0, @cstime=0.0, @total=0.0, @cutime=0.0>, #<Benchmark::Tms:0x4910bb0 @ label="", @stime=0.0, @real=0.0, @utime=0.0, @cstime=0.0, @total=0.0, @cutime=0.0>]