J'ai le chemin / URL ci-dessous
test = "/test/test-products/?pId=9401100&imgId=14607518&catID=5449&modelId=pros&cm_sp=XIT_resp-_-PR-_-14607518_9401100&lid=xit-test-14607518-9401100";
newPath = test.replace('14607518', '12345678');
Je ne mets pas à jour toutes les occurrences de la chaîne correspondante bien qu'elle ait un hypen, un soulignement (-_-)
Comment puis-je remplacer toutes les occurrences de 14607518 par regex?
3 Réponses :
La syntaxe est un peu différente puisque vous utilisez l'expression régulière ici.
test.replace('14607518', '12345678');
Au lieu de
test.replace(/14607518/g, '12345678');
Où le 'g' à la fin signifie «global», ou remplace toutes les occurrences.
Lorsque vous passez une chaîne au lieu d'un objet regex pour le remplacer, il ne remplace que la première occurrence, vous devez utiliser une balise g et un modèle d'expression régulière pour remplacer toutes les instances
p >
const test = "/test/test-products/?pId=9401100&imgId=14607518&catID=5449&modelId=pros&cm_sp=XIT_resp-_-PR-_-14607518_9401100&lid=xit-test-14607518-9401100"; const newPath = test.replace(/14607518/g, '12345678'); console.log(newPath)
Vous devez utiliser:
const regex = /([^\d])(14607518)([^\d])/gm; const str = `/test/test-products/?pId=9401100&imgId=146075189&catID=5449&modelId=pros&cm_sp=XIT_resp-_-PR-_-14607518_9401100&lid=xit-test-14607518-9401100`; const subst = `$112345678$3`; // The substituted value will be contained in the result variable const result = str.replace(regex, subst);
car cela vous aidera à éviter de cibler accidentellement des numéros tels que 146075189
([^\d])(14607518)([^\d])
Voir https://regex101.com/r/0pJWwo/1 p >