Einfache Strings für SEO-freundliche URLs vorbereiten

Es werden alle Sonderzeichen aus dem String entfernt. Umlaute werden in AE, OE und UE etc., das ß in SS umgewandelt. 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.

Lerne mehr über Ruby on Rails mit Martin Labuschins
Ruby on Rails Link Library.

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!

veröffentlicht am 26.03.2008 um 23:00 von Martin Labuschin in ,


Das "return callname" kann man sich doch garantiert sparen, oder? :)

Richtig. Find ich persönlich so aber schöner.

Jau und man kann das auch noch platzsparender machen, indem man die ganzen gsubs hintereinander hängt, also: gsub().gsub().gsub() ...

Peter, klar geht das. Aber ich hab's lieber übersichtlich und wartbarer. Kennst' das ja ...

blog comments powered by Disqus
The Ruby on Rails Link Library Spanning Sync SEO-Dokumentation Gowalla
ProWebApps WellDone (β) Pinboard (α) Netzwerk Münsterland
Blogs Bücher Frameworks iPhone Mac Web-Apps