用regexp创建空间

Alf*_*red 1 ruby regex sinatra

我有一个sinatra应用程序,我计划在飞行中制作一个油炸的网址.我有一个看起来像这样的正则表达式的函数,但它不会将'空格'转换为'破折号',''转换为' - '.

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

提前致谢!

更新

现在我也试图将åä改为a和ö到o,我的代码看起来像这样但不起作用,任何想法?

gsub(/[åä]/, 'a')
gsub(/[ö]/, 'o')
Run Code Online (Sandbox Code Playgroud)

Jas*_*ble 8

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

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

*downcase it(my&title5 :)
*用 - (my - & - title5 :)替换一个或多个空白字符
*替换非字母/数字字符(my - title5)
*替换多次出现 - with - (my-title5)

我希望这有帮助.