27. März 2008 in Ruby » Code-Schnipsel
Einfache Strings für SEO-freundliche URLs vorbereiten
def create_callname(string) # Autor: Martin Labuschin # Erstellt am 27. März 2008 # Es werden alle Sonderzeichen aus dem String entfernt. Umlaute werden in AE, OE und UE etc., das ß in SS umgewandet. Alle Buchstaben werden in Minuskeln umgewandelt und alle Leerräume werden mit Minuszeichen gefüllt. Ein doppeltes Vorkommen, das Beginnen oder Beenden mit einem Minuszeichen wird verhindert. # BEMERKUNG: Es wird nur Plaintext erwartet callname = string.dup callname.gsub!(/[Ää]+/i,'ae') callname.gsub!(/[Üü]+/i,'ue') callname.gsub!(/[Öö]+/i,'oe') callname.gsub!(/[ß]+/i,'ss') callname.downcase! callname.gsub!(/[^a-z0-9]+/i, '-') callname.gsub!(/(^[-]+|[-]+$)/, '') return callname end
Verbesserunsvorschläge sind selbstverständlich gerne gesehen!
Kommentar hinzufügen
Du kannst dich hier frei äußern, jedoch solltest du dich dabei fair gegenüber den anderen Lesern und dem Autor verhalten. Private Mitteilungen an Martin bitte per E-Mail an martin@labuschin.com. Danke.
4 Kommentare
Kristof Dreier am 27. März 2008 #
Das "return callname" kann man sich doch garantiert sparen, oder? :)
Martin Labuschin am 27. März 2008 #
Richtig. Find ich persönlich so aber schöner.
Peter Grosskopf am 8. April 2008 #
Jau und man kann das auch noch platzsparender machen, indem man die ganzen gsubs hintereinander hängt, also: gsub().gsub().gsub() ...
Martin Labuschin am 9. April 2008 #
Peter, klar geht das. Aber ich hab's lieber übersichtlich und wartbarer. Kennst' das ja ...