Elle converti le texte en minuscule et supprime tous les caractères avec accents par leur équivalent sans accent.
Après avoir remplacé tous les caractères non alphanumérique par un underscore, elle efface les doublons pour renvoyer une url joliment formatée.
Vous pouvez remplacer les tirets (-) par des underscores (_) si vous préférez.
Cette fonction modifie tous caractères non alphanumérique et cela inclus les slashs. Elle est utile pour convertir un titre plutôt que valider une url complète.
Si c'est ce que vous cherchez il faudra supprimer la ligne s = s.replace(/\W/g, '-');
et la remplacer par quelque chose comme s = s.replace(/[\s@#&"'()\[\]{}§!?.,;:]/g, '-');
. A vous d'intégrer tous les caractères susceptible d'être présent.
function str2url(aStr){
// converti le texte en minuscule
var s = aStr.toLowerCase();
// remplace les a accentué
s = s.replace(/[àâäáã]/g, 'a');
// remplace les e accentué
s = s.replace(/[èêëé]/g, 'e');
// remplace les i accentué
s = s.replace(/[ìîïí]/g, 'i');
// remplace les u accentué
s = s.replace(/[ùûüú]/g, 'u');
// remplace les o accentué
s = s.replace(/[òôöó]/g, 'o');
// remplace le c cédille
s = s.replace(/[ç]/g, 'c');
// remplace le ene tilde espagnol
s = s.replace(/[ñ]/g, 'n');
// remplace tous les caractères qui ne sont pas alphanumérique en tiret
s = s.replace(/\W/g, '-');
// remplace les double tirets en tiret unique
s = s.replace(/\-+/g, '-');
// renvoi le texte modifié
return s;
}