1
votes

Comment supprimer le premier nombre suivi d'une virgule dans regex?

Si j'ai des chaînes ["32145", "yes", "no", "0"] comment voudrais-tu: , "yes", "no", "0" ? Pour le moment, j'ai le regex ci-dessous, mais cela me donne , oui, non,

.replace(/["'\\[\\ \d ./g,"")

Comment supprimer simplement le premier chiffre et la première virgule après ce chiffre?


2 commentaires

Une bonne ressource que j'utilise lors du test de regex est un éditeur de regex en ligne pour voir rapidement comment il interagit. Il suffit de l'ajouter au cas où vous le trouveriez utile.


@Emma oui je le ferais


3 Réponses :


2
votes

Peut-être,

const regex = /\["\d+",|[\]"]/g;
const str = `["32145","yes","no","0"] `;
const subst = ``;

const result = str.replace(regex, subst);

console.log(result);

être remplacé par une chaîne vide fonctionnerait bien.

\["\d+",|[\]"]

Démo

Circuit RegEx h3>

jex.im visualise les expressions régulières:

 entrez la description de l'image ici


1 commentaires

Cela garde toujours tous les guillemets, je ne cherche pas non plus à ajouter les crochets



3
votes

Voici une solution sans regex utilisant JSON.parse () .

var str = '["32145","yes","no","0"]';

var result = JSON.parse(str); // Convert string to array.
result.shift(); // Remove first array element.
result = result.toString(); // Convert array to string.

console.log(result);


0 commentaires

0
votes

Analysez simplement la valeur et supprimez le premier élément qui est un nombre

let firstNumRemover = (str) => {
  let removeFurther = true
  return JSON.parse(str).filter(v => {
    if (!isNaN(v) && removeFurther) {
      removeFurther = false
      return false
    }
    return true
  }).toString()
}

console.log(firstNumRemover(`["32145","yes","no","0"]`))
console.log(firstNumRemover(`["Some random text", "32145","yes","no","0"]`))


0 commentaires