Освободите место, чтобы разбить с помощью регулярных выражений - PullRequest
1 голос
/ 04 августа 2010

У меня есть приложение sinatra, где я планирую делать жаркие URL на лету. У меня есть функция с регулярным выражением, которая выглядит следующим образом, но она не превращает «пробелы» в «тире», «в» - ».

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

Заранее спасибо!

Обновление

Теперь я также пытаюсь изменить åä на a и ö на o, мой код выглядит так, но не сработает, какие-нибудь идеи?

gsub(/[åä]/, 'a')
gsub(/[ö]/, 'o')

Ответы [ 2 ]

8 голосов
/ 04 августа 2010

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

Это займет заданный заголовок (My & Title5 :) и:

* нижний регистр (мой & title5:)
* замените один или несколько символов пробела на - (my - & - title5:)
* заменить не буквы / цифры ни на что (my - title5)
* заменить несколько вхождений - на - (my-title5)

Надеюсь, это поможет.

2 голосов
/ 04 августа 2010

Каким бы ни был язык, вы сначала заменяете "" на "-", а затем заменяете все, кроме a-z0-9_ (то есть также "-") на "". Включите "-" в список как [^a-z0-9_-]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...