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!
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 ...
Kristof Dreier
26.03.2008
Das "return callname" kann man sich doch garantiert sparen, oder? :)