代码之家  ›  专栏  ›  技术社区  ›  marcgg

改变“Bob@”的最佳方法????????使用ruby“bob@something.com”吗?

  •  0
  • marcgg  · 技术社区  · 15 年前

    最好的方法是:

    mail = "bob@something.com"
    mail2 = mail.do_magic
    # puts mail2 will return "bob@anotherwebsite.com"
    

    我当然在想雷杰克斯,但还有别的酷方法吗?如果没有,我应该如何使用regexp?

    3 回复  |  直到 15 年前
        1
  •  3
  •   jerhinesmith    15 年前

    我不确定我完全理解你的要求,但你不能像这样使用regex吗?

    irb(main):001:0> email = "bob@example.com"
    => "bob@example.com"
    irb(main):002:0> email.gsub(/@[\w.]+/, '@something.com')
    => "bob@something.com"
    

    告诉我我错过了什么,或者我对这个问题的理解不正确。

        2
  •  1
  •   glenn jackman    15 年前

    也可以在字符串索引中使用regexps:

    email = "bob@example.com"
    replace = "foobar.invalid"
    email[/@.*/] = "@#{replace}"
    

    如果不想修改 email :

    (new = email.dup)[/@.*/] = "@#{replace}"
    p [email,new]  # => ["bob@example.com", "bob@foobar.invalid"]
    
        3
  •  0
  •   glenn jackman    15 年前

    另一种避免正则表达式的方法是拆分和联接

    new = [email.split('@').first, "foobar.invalid"].join('@')