Comment supprimer du texte d'une chaîne?

578

J'ai une data-123chaîne.

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

Michael Grigsby
la source

Réponses:

1159

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

Docs.


Pour toutes les occurrences à éliminer, 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, utilisez donc la valeur de retour de la fonction après l'appel replace ().

Mathletics
la source
Comment remplacer plusieurs expressions? Devez-vous utiliser plusieurs appels .replace?
Dror Bar
124

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

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

Vous pouvez également transmettre une expression régulière à cette fonction. Dans l'exemple suivant, il remplacerait tout sauf les chiffres:

str = str.replace(/[^0-9\.]+/g, "");
James Johnson
la source
Pourriez-vous expliquer ce que fait l'expression régulière? Je ne comprends pas pourquoi il remplace la chaîne sauf les chiffres si cela a 0-9été indiqué.
Rotimi-best
60

Vous pouvez utiliser "data-123".replace('data-','');, comme mentionné, mais comme replace()ne remplace que la PREMIÈRE instance du texte correspondant, si votre chaîne était quelque chose comme "data-123data-"alors

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

ne remplacera que le premier texte correspondant. Et votre sortie sera"123data-"

DEMO

Donc, si vous voulez que toutes les correspondances de texte soient remplacées dans une chaîne, vous devez utiliser une expression régulière avec le gdrapeau comme ça:

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

Et votre sortie sera "123"

DEMO2

laaposto
la source
28

vous pouvez utiliser slice (), il returens des caractères entre le début et la fin (point final inclus)

   string.slice(start , end);

voici quelques exemples pour montrer comment cela fonctionne:

var mystr = ("data-123").slice(5); // jast define start point so output is "123"
var mystr = ("data-123").slice(5,7); // define start and end  so output is "12"
var mystr=(",246").slice(1); // returens "246"

Démo

monsieur shojaei
la source
23

Un simple 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()docs sur MDN pour plus d'informations et d'utilisation.

James Hill
la source
17

Ex:-

var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);

J'espère que cela fonctionnera pour vous.

Ranjit Kanojia
la source
11

J'étais habitué à la méthode C # (Sharp) String.Remove. En Javascript, il n'y a pas de fonction de suppression pour la chaîne, mais il y a une fonction substr. Vous pouvez utiliser la fonction substr une ou deux fois pour supprimer des caractères de la chaîne. Vous pouvez créer la fonction suivante pour supprimer des caractères au début de l'index jusqu'à la fin de la chaîne, tout comme la première méthode c # surcharge 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 au début de l'index et du décompte, tout comme la méthode c # deuxième surcharge String.Remove (int startIndex, int count):

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

et puis vous pouvez utiliser ces deux fonctions ou l'une d'entre elles pour vos besoins!

Exemple:

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

Sortie: 123


la source
9

Cette petite fonction que j'ai créée a toujours fonctionné pour moi :)

String.prototype.deleteWord = function (searchTerm) {
    var str = this;
    var n = str.search(searchTerm);
    while (str.search(searchTerm) > -1) {
        n = str.search(searchTerm);
        str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
    }
    return str;
}

// Use it like this:
var string = "text is the the cool!!";
string.deleteWord('the'); // Returns text is cool!!

Je sais que ce n'est pas le meilleur, mais ça a toujours fonctionné pour moi :)


la source
Vous montrez dans votre réponse comment la fonction de remplacement de chaîne fonctionne plus ou moins, mais en effet, l'utilisation de la fonction de remplacement de chaîne est un code beaucoup plus simple et plus facile que le vôtre!
9
str.split('Yes').join('No'); 

Cela remplacera toutes les occurrences de cette chaîne spécifique de la chaîne d'origine.

ARC
la source
8

Utilisation de match()et Number()pour renvoyer une numbervariable:

Number(("data-123").match(/\d+$/));

// strNum = 123

Voici ce que fait la déclaration ci-dessus ... en milieu de travail:

  1. str.match(/\d+$/)- renvoie un tableau contenant des correspondances à n'importe quelle longueur de nombres à la fin de str. Dans ce cas, il renvoie un tableau contenant un seul élément de chaîne ['123'].
  2. Number()- le convertit en un type numérique. Parce que le tableau renvoyé par .match()contient un seul élément Number()renverra le nombre.
Brett DeWoody
la source