Ich bekomme einige Zeichenfolgen auf menschlich lesbaren Format, und das werden Titel meiner Wordpress Posts sein. Also, um die URL für diesen Beitrag zu generieren, würde ich gerne wissen, ob es eine Methode gibt, um eine Zeichenkette in Ruby zu "urlisieren". Zum Beispiel, wenn ich die Zeichenfolge "Doing einige Tests auf meine кcented string" habe, würde ich gerne "tun-einige-Test-auf-meine-Akzent-Zeichenfolge" oder muss ich meine eigenen schreiben? Danke im Voraus!"URLize" -String in Ruby
Antwort
benutzte ich i18n mich gelegentlich (zB here), aber wenn Sie ein anderes Juwel benötigen möchten Sie nicht noch auch .tr
string_with_special_chars.tr(
"ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž",
"AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz")
Nach einigen Vorschlägen umgesetzt meine eigene Methode:
require 'i18n'
I18n.config.available_locales = :en
def urlize(string)
I18n.transliterate(string).squeeze.gsub(" ", "-").downcase
end
Hope this jemand hilft, vielen Dank für die Hilfe!
Wofür ist der Squeeze? Und für diesen speziellen Anwendungsfall sollten Sie tr anstelle von gsub verwenden. – mwp
@mwp zum Entfernen mehrerer Whitespaces, in nur eine –
umwandeln. Es sieht so aus, als ob ActiveSupport :: Inflector.parameterime das Gleiche tut. Sie können Ihre '.squeeze.gsub ('', '-')' zu einem einzigen '.tr_s ('', '-')' kombinieren, wenn Sie ein paar Zeichen/Operationen rasieren wollen. :) – mwp
nicht geben Sie als ziemlich Ergebnisse nutzen könnten, aber
require 'uri'
URI.escape(string.gsub(/\s+/, ?-)
Für Ihr Beispiel, das
"Doing-some-test-on-my-%C3%A1ccented-string"
- 1. Erweitern von urlize in django
- 2. Idiomatische Verwendung von Urlize-Filter mit Blocktrans in Django Vorlage
- 3. String Encoding in Ruby
- 4. String-Konvertierungen in Ruby
- 5. Convert Hash-String in Ruby
- 6. Ruby String in Datei konvertieren
- 7. Ruby String in Hash umwandeln
- 8. Convert String Variablennamen in Ruby
- 9. spezielles String-Splitting in Ruby
- 10. Ruby-String-Ersetzung
- 11. Ruby String zu oktal?
- 12. Extraktion von String - Ruby
- 13. Ruby-Löschmethode (String-Manipulation)
- 14. Parsing String mit Ruby
- 15. Ruby-Parse String
- 16. Ruby String # unpack
- 17. Ruby string encoding problem
- 18. Ruby-Parse String JSon
- 19. Ruby to_yaml utf8 string
- 20. Ruby-String-Struktur
- 21. Ruby String Literale zwischengespeichert?
- 22. Ruby String Ausgabe
- 23. Ruby-String # {} funktioniert nicht
- 24. Ruby: Hexadezimal String zu Binär String
- 25. Ruby-String vergleichen, unabhängig von String Fall
- 26. Konvertieren von String in Regexp in Ruby
- 27. Convert String in int-Array in Ruby
- 28. Ruby-String-Streifen definiert Zeichen
- 29. Wörter einschließlich gegebenen String in Ruby
- 30. Extract Anzahl von String in Ruby
Reiner Rubin oder RoR gibt? In jedem Fall lautet das Schlüsselwort zu Google "slug". – mudasobwa
Wenn Sie ActiveSupport verwenden, wird String # parameterize bereitgestellt. Andernfalls müssen Sie Ihre eigenen schreiben, obwohl es nicht zu schwer sein sollte (oder Sie könnten nur ActiveSupport die Implementierung rippen - es ist nur ein paar Zeilen). –
Es ist purer Rubin ... ja, der nervige Teil ist Akzente zu behandeln: /. Danke trotzdem! –