我有一个sinatra应用程序,我计划在飞行中制作一个油炸的网址。我有一个带有正则表达式的函数看起来像这样,但它不会将'space'变成'破折号',''变成' - '。
def self.make_slug(title)
title.downcase.gsub(/ /, '-').gsub(/[^a-z0-9_]/, '').squeeze('-')
end
提前致谢!
更新
现在我也试图将åä改为a和ö到o,我的代码看起来像这样但不起作用,有什么想法吗?
gsub(/[åä]/, 'a')
gsub(/[ö]/, 'o')
答案 0 :(得分:8)
title.downcase.gsub(/\s+/, '-').gsub(/[^a-z0-9_-]/, '').squeeze('-')
这将采用给定的标题(My& Title5 :)和:
* downcase it(my& title5 :)
*用 - (my-& -title5 :)替换一个或多个空格字符
*替换非字母/数字字符(my - title5)
*替换多次出现 - with - (my-title5)
我希望这会有所帮助。
答案 1 :(得分:2)
无论使用何种语言,您首先用“ - ”替换“”,然后用“”替换a-z0-9_
(因此也是“ - ”)之外的所有内容。在列表中加入“ - ”,例如[^a-z0-9_-]