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

腾出空间用regexp冲刺

  •  1
  • Alfred  · 技术社区  · 14 年前

    我有一个sinatra的应用程序,我计划做一个friedly网址的飞行。我有一个带有如下regexp的函数,但它不会将“spaces”变成“破折号”,“to”-。

    def self.make_slug(title)
      title.downcase.gsub(/ /, '-').gsub(/[^a-z0-9_]/, '').squeeze('-')
    end
    

    提前谢谢!

    更新

    现在我也在努力改变¤ 在a和o中,我的代码看起来像这样,但不起作用,有什么想法吗?

    gsub(/[åä]/, 'a')
    gsub(/[ö]/, 'o')
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   mvds    14 年前

    不管是哪种语言,你首先要用“-”替换“,”,然后再替换除“-”以外的所有内容 a-z0-9_ (因此,也可以用“-”和“”。在列表中包括“-”,如 [^a-z0-9_-]

        2
  •  8
  •   Jason Noble    10 年前

    title.downcase.gsub(/\s+/, '-').gsub(/[^a-z0-9_-]/, '').squeeze('-')

    这将采用给定的标题(My&标题5:)和:



    *将非字母/数字字符替换为空(my--title5)
    *将多次出现的-替换为-(my-title5)

    我希望这有帮助。