Comment convertir une chaîne de caractères en URL (slugify) en JavaScript ?

Introduction

Cette page explique comment convertir une chaîne de caractère en URL en JavaScript. En anglais, la chaine de caractère résultante s'appelle un "slug". "Slugify" est le verbe associé au processus de convertion. Par exemple : le blog de Lulu deviendra après transformation le-blog-de-lulu.

Code source en JavaScript

La fonction ci-dessous permet la convertion d'une chaîne de caractères en slug :

// Slugity a string
function slugify(str)
{
    str = str.replace(/^\s+|\s+$/g, '');

    // Make the string lowercase
    str = str.toLowerCase();

    // Remove accents, swap ñ for n, etc
    var from = "ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆÍÌÎÏŇÑÓÖÒÔÕØŘŔŠŤÚŮÜÙÛÝŸŽáäâàãåčçćďéěëèêẽĕȇíìîïňñóöòôõøðřŕšťúůüùûýÿžþÞĐđßÆa·/_,:;";
    var to   = "AAAAAACCCDEEEEEEEEIIIINNOOOOOORRSTUUUUUYYZaaaaaacccdeeeeeeeeiiiinnooooooorrstuuuuuyyzbBDdBAa------";
    for (var i=0, l=from.length ; i<l ; i++) {
        str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
    }

    // Remove invalid chars
    str = str.replace(/[^a-z0-9 -]/g, '') 
    // Collapse whitespace and replace by -
    .replace(/\s+/g, '-') 
    // Collapse dashes
    .replace(/-+/g, '-'); 

    return str;
}

Voir aussi


Dernière mise à jour : 05/11/2020