enlever des nombres de chaîne?

enlever des nombres de la chaîne

questionText = "1 ding ?" 

Je veux remplacer ce numéro et le numéro de la question, le nombre peut être un nombre quelconque, j’ai essayé de suivre le code qui ne fonctionne pas

  questionText.replace(/[0-9]/g, ''); 

Très proche, essayez:

 questionText = questionText.replace(/[0-9]/g, ''); 

replace ne fonctionne pas sur la chaîne existante, elle en retourne une nouvelle. Si vous voulez l’utiliser, vous devez le garder!
De même, vous pouvez utiliser une nouvelle variable:

 var withNoDigits = questionText.replace(/[0-9]/g, ''); 

Une dernière astuce pour supprimer des blocs entiers de chiffres, mais on peut aller trop loin:

 questionText = questionText.replace(/\d+/g, ''); 

Les chaînes sont immuables , c’est pourquoi questionText.replace(/[0-9]/g, ''); sur son propre travail, mais cela ne change pas la chaîne questionText. Vous devrez atsortingbuer le résultat du remplacement à une autre variable Ssortingng ou à questionText lui-même.

 var cleanedQuestionText = questionText.replace(/[0-9]/g, ''); 

ou en 1 go (en utilisant \d+ , voir la réponse de Kobi):

  questionText = ("1 ding ?").replace(/\d+/g,''); 

et si vous voulez couper les espaces de début (et de fin) pendant que vous y êtes:

  questionText = ("1 ding ?").replace(/\d+|^\s+|\s+$/g,''); 

Vous êtes remarquablement proche.

Voici le code que vous avez écrit dans la question:

 questionText.replace(/[0-9]/g, ''); 

Le code que vous avez écrit regarde bien la variable questionText et produit une sortie qui est la chaîne d’origine, mais avec les chiffres remplacés par une chaîne vide.

Cependant, il ne l’affecte pas automatiquement à la variable d’origine. Vous devez spécifier quoi atsortingbuer à:

 questionText = questionText.replace(/[0-9]/g, ''); 

Je veux juste append, car il pourrait être intéressant pour quelqu’un de penser au problème dans l’autre sens. Je ne sais pas si cela vous intéresse, mais je le trouve pertinent.

Ce que je veux dire par l’autre moyen est de dire “dépouillez tout ce qui n’est pas ce que je recherche, c.-à-d. Si vous voulez seulement le” ding “, vous pouvez dire:

var ssortingppedText = (“1 ding?”). replace (/ [^ a-zA-Z] / g, ”);

Ce qui signifie en gros “enlever tout ce qui est nog a, b, c, d …. Z (n’importe quelle lettre).

Cela peut être fait sans regex ce qui est plus efficace:

 var questionText = "1 ding ?" var index = 0; var num = ""; do { num += questionText[index]; } while (questionText[++index] >= "0" && questionText[index] < = "9"); questionText = questionText.substring(num.length); 

Et en prime, il stocke également le numéro, ce qui peut être utile à certaines personnes.