регулярное выражение для замены символов, а затем удалить пробелы и дефисы для URL - PullRequest
0 голосов
/ 07 февраля 2012

Я хочу отформатировать имена производителей для использования в URL.

Пример: IN-X / P.S.M. International

Я написал вспомогательный метод следующим образом

def clean_name(name)
      fn = name.gsub(/[.\/,&()]/, '') #replace these characters with nothing
      fnn=fn.strip.gsub(/[\s]/,'-')   #replace the spaces between the words with hyphens
      fnnn = fnn.gsub(/--/,'-')       #replace double hyphens with single ones
end

Я знаю, что должен быть лучший способ сделать это, чем у меня выше.У каких-нибудь более опытных программистов есть идеи?

Ответы [ 2 ]

5 голосов
/ 07 февраля 2012

Если вы используете Rails, вы можете просто сделать:

string.parameterize

Это происходит от ActiveSupport :: Inflector .Для еще более сложной порции см. ActsAsUrl .Он может выполнять следующие действия:

"rock & roll".to_url => "rock-and-roll"
"$12 worth of Ruby power".to_url => "12-dollars-worth-of-ruby-power"
"10% off if you act now".to_url => "10-percent-off-if-you-act-now"
"kick it en Français".to_url => "kick-it-en-francais"
"rock it Español style".to_url => "rock-it-espanol-style"
"tell your readers 你好".to_url => "tell-your-readers-ni-hao"

В категории Постоянные ссылки и слагы в Ruby Toolbox есть несколько других параметров.

0 голосов
/ 07 февраля 2012

Как насчет этого:

def clean_name(name)
  name.gsub(/[.\/,&()]/, '').gsub(/[\s\-]+/, '-')
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...