Enlever les accents dans une chaine de caractères Ruby
Utile pour convertir "àéêîôûù" en "aeeiouu".
C'est facile de convertir une chaine de caractères (String) pour avoir une version "URL-Safe". Autant PHP que Ruby ont une façon de le faire, mais dans les 2 cas les lettres avec accents sont simplement converties en %XX. Ça ne donne pas un résultat vraiment idéal dans plusieurs cas!
Si vous êtes comme nous, il vous arrive probablement souvent de vouloir enlever les accents pour ne garder que les lettres de base. Par exemple, convertir "été" en "ete". C'est pratique en autre si vous voulez une chaine qui se retrouvera dans l'URL d'une page. Par exemple, vous donnez une page perso à chaque utilisateur de votre site. Si le nom du visiteur est "François Léveillé", on fait quoi?
Dans ce cas, vous voulez probablement avoir "francois_leveille" ou "francoisleveille" et c'est exactement ce que ce script va vous aider a faire.
En premier lieu, TÉLÉCHARGEZ LE SCRIPT et assurez-vous de l'ajouter dans votre projet. Pour un projet Ruby on Rails, placez le fichier dans le répertoire lib et ajoutez cette ligne au bas du fichier config/environment.rb:
1
Une fois fait, vous avez maintenant 2 nouvelles méthodes dans la classe String ce qui veut dire que vous pouvez maintenant les utiliser sur n'importe quelle chaine de caractère dans votre projet:
1 # On se vend une string test 2 mystring = "Ceci Est UN test : éàòù" 3 4 # removeaccents enlève simplement les accents 5 # et retourne la nouvelle chaine 6 mystring.removeaccents 7 8 # urlize enlève les accents mais aussi, 9 # appel quelques autres méthodes pour rendre 10 # la chaine prête pour un URL. 11 mystring.urlize 12 13 # Vous pouvez modifier urlize avec certaines options: 14 # :downcase => true 15 # converti toutes les lettres en minuscules 16 # :convert_spaces => true 17 # converti les espaces en souligné 18 # :regexp => // 19 # Les caractères trouvés seront éliminés 20 mystring.urlize({:downcase => true})
N'oubliez pas de lire la documentation pour plus de détails sur ce qui est possible avec ces méthodes.
Ce script est distribué sous une licence Creative Commons Attribution-Share Alike 2.5 Canada.