web-dev-qa-db-fra.com

Remplacez les espaces par des tirets et mettez toutes les lettres en minuscule

J'ai besoin de reformater une chaîne en utilisant jQuery ou JavaScript JavaScript

Disons que nous avons "Sonic Free Games".

Je veux le convertir en "sonic-free-games".

Les espaces doivent donc être remplacés par des tirets et toutes les lettres converties en minuscules.

Toute aide sur ceci s'il vous plaît?

208
M.E

Utilisez simplement les méthodes String replace et toLowerCase , par exemple:

var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase();
console.log(str); // "sonic-free-games"

Notez l’indicateur g sur RegExp, le remplacement sera effectué globalement dans la chaîne. Si elle n’est pas utilisée, seule la première occurrence sera remplacée, et De même, RegExp correspondra à un ou plusieurs caractères d'espace blanc.

469
CMS

La réponse ci-dessus peut être considérée comme un peu déroutante. Les méthodes de chaîne ne sont pas modification objet d'origine. Ils retourne nouvel objet. Ce doit être:

var str = "Sonic Free Games";
str = str.replace(/\s+/g, '-').toLowerCase(); //new object assigned to var str
28
yurin

Vous pouvez également utiliser split et join:

"Sonic Free Games".split(" ").join("-").toLowerCase(); //sonic-free-games
27
Eesa