969 votes

Comment supprimer le texte d'une chaîne de caractères ?

J'ai un data-123 chaîne.

Comment puis-je supprimer data- de la chaîne tout en laissant le 123 ?

1840voto

Mathletics Points 9153
var ret = "data-123".replace('data-','');
console.log(ret);   //prints: 123

Docs.


Pour que toutes les occurrences soient éliminées, utilisez :

var ret = "data-123".replace(/data-/g,'');

PS : La fonction replace renvoie une nouvelle chaîne et laisse la chaîne d'origine inchangée, donc utilisez la valeur de retour de la fonction après l'appel replace().

0 votes

Comment remplacer des expressions multiples ? Devez-vous utiliser plusieurs appels .replace ?

12 votes

Pour que toutes les occurrences soient éliminées, vous pouvez utiliser replaceAll

183voto

James Johnson Points 29414

Cela n'a rien à voir avec jQuery. Vous pouvez utiliser le JavaScript replace pour cela :

var str = "data-123";
str = str.replace("data-", "");

Vous pouvez également passer une expression rationnelle à cette fonction. Dans l'exemple suivant, elle remplacera tout sauf les chiffres :

str = str.replace(/[^0-9\.]+/g, "");

0 votes

Pouvez-vous expliquer ce que fait le regex ? Je ne comprends pas pourquoi elle remplace les chaînes de caractères sauf les nombres si 0-9 a été indiqué.

2 votes

@rotimi-best [^0-9\.] signifie qu'il attrapera toute lettre qui est no un chiffre ou un point. Remarquez le signe d'insertion juste après le premier crochet.

82voto

laaposto Points 6303

Vous pouvez utiliser "data-123".replace('data-',''); comme mentionné, mais comme replace() remplace uniquement le FIRST instance du texte correspondant, si votre chaîne était quelque chose comme "data-123data-" puis

"data-123data-".replace('data-','');

ne remplacera que le premier texte correspondant. Et votre résultat sera "123data-"

DEMO

Ainsi, si vous voulez que toutes les correspondances de texte soient remplacées dans la chaîne de caractères, vous devez utiliser une expression régulière avec l'attribut g drapeau comme ça :

"data-123data-".replace(/data-/g,'');

Et votre résultat sera "123"

DEMO2

32voto

James Hill Points 27532

Le bon vieux JavaScript suffira - jQuery n'est pas nécessaire pour une tâche aussi simple :

var myString = "data-123";
var myNewString = myString.replace("data-", "");

Voir : .replace() Documents sur MDN pour des informations supplémentaires et l'utilisation.

12voto

Erez Points 66

J'étais habitué à la méthode String.Remove de C# (Sharp). En Javascript, il n'y a pas de fonction remove pour les chaînes de caractères, mais il y a la fonction substr. Vous pouvez utiliser la fonction substr une ou deux fois pour supprimer des caractères d'une chaîne. Vous pouvez créer la fonction suivante pour supprimer les caractères de l'indice de départ jusqu'à la fin de la chaîne, tout comme la méthode C#, en surchargeant String.Remove(int startIndex) :

function Remove(str, startIndex) {
    return str.substr(0, startIndex);
}

et/ou vous pouvez également créer la fonction suivante pour supprimer les caractères à l'indice de départ et au nombre, tout comme la deuxième surcharge de la méthode c# String.Remove(int startIndex, int count) :

function Remove(str, startIndex, count) {
    return str.substr(0, startIndex) + str.substr(startIndex + count);
}

et vous pourrez alors utiliser ces deux fonctions ou l'une d'entre elles selon vos besoins !

Exemple :

alert(Remove("data-123", 0, 5));

Sortie : 123

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