187 votes

Comment convertir un titre à une limace URL dans jQuery ?

Je travaille sur une application à CodeIgniter, et je suis en train de faire un champ sur un formulaire générer dynamiquement la limace URL. Ce que je voudrais faire, c’est supprimer la ponctuation, le convertir en minuscules et remplacez les espaces par des traits d’Union. Ainsi, par exemple, Shane Rib Shack deviendrait shanes-côtes-shack.

Voici ce que j’ai jusqu'à présent. La minuscule partie a été facile, mais la remplacer ne semble pas fonctionner du tout, et je n’ai aucune idée de supprimer la ponctuation :

439voto

Peter Boughton Points 49510

Je n'ai aucune idée de l'endroit où le 'slug' terme est venu, mais ici nous allons:

function convertToSlug(Text)
{
    return Text
        .toLowerCase()
        .replace(/ /g,'-')
        .replace(/[^\w-]+/g,'')
        ;
}

Tout d'abord remplacer changera des espaces pour les traits d'union, deuxième remplacer supprime ce qui n'est pas alphanumérique, un trait de soulignement ou un trait d'union.

Si vous ne voulez pas les choses "comme ce" tournant", comme cette" ensuite, vous pouvez à la place utiliser celui-ci:

function convertToSlug(Text)
{
    return Text
        .toLowerCase()
        .replace(/[^\w ]+/g,'')
        .replace(/ +/g,'-')
        ;
}

Qui va supprimer les tirets (mais pas d'espaces) sur la première remplacer, dans le deuxième remplacer il va se condenser espaces consécutifs en un seul trait d'union.

Donc, est - ce" sort "comme-ça".

122voto

Taranttini Points 411
<pre><code></code><p>et essayer</p><pre><code></code></pre><p><a href="http://dense13.com/blog/2009/05/03/converting-string-to-slug-javascript/">http://dense13.com/blog/2009/05/03/Converting-String-to-Slug-JavaScript/</a></p></pre>

23voto

Philippe Leybaert Points 62715

Tout d’abord, les expressions régulières ne devraient pas avoir entourant les citations, alors ' / \s/g' doit être /\s/g

Afin de remplacer tous les caractères non alphanumériques avec des tirets, cela devrait fonctionner (à l’aide de votre code d’exemple) :

Qui devrait faire l’affaire...

7voto

karim79 Points 178055

Tout vous avez besoin, c’était un plus  :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X