Je suis en train d'envelopper ma tête autour de l'utilisation des expressions régulières et remplacer() avec JavaScript, mais pas encore réussiComment effectuer un remplacement conditionnel à l'aide de RegExp de JavaScript?
Supposons que j'ai une chaîne contenant ceci:
<img alt="a picture of ..." src="image/1533?foo=1&bar=2$zot=3" width="500" />
Si zot=3
Je veux supprimer foo (et sa valeur) (ou remplacez foo=x
par une chaîne vide).
Le remplacement se présente comme suit:.
<img alt="a picture of ..." src="picture/1533?bar=2$zot=3" width="500" />
Je veux que ce soit comme épreuve des balles que possible que je ne peux jamais être sûr de commander les paramètres d'URL seront donnés dans
Est cela est-il possible en utilisant une seule regex, ou y a-t-il de meilleures solutions?
Je pensais à l'aide DOM et
- traversant tous
img
nœuds - obtenir le
src
attribut - faire un test si
@src
valeur azot=3
- si elle a
zot=3
, remplacerfoo=1
avec une chaîne vide
Bien sûr, je dois m'assurer que toute esperluette et ainsi de suite est enlevée aussi.
Mais j'espère le résoudre en utilisant une expression régulière ou deux,
Merci pour tout et toutes les réponses et conseils!
Donc un String.replace global n'est pas recommandé? –
el.src est une chaîne - elle possède la méthode .replace() héritée de la chaîne du prototype. Pas sûr de ce que vous entendez par "global String.replace()" – gnarf
Eh bien, désolé, ma description est un peu faux. J'ai trouvé que je n'ai pas un document XML/HTML, mais seulement une chaîne, ce qui signifie que DOM peut ne pas être une option. Je devrais alors faire la chaîne à un fragment XML (je pense que JavaScript peut le faire) mais j'espère ne pas trop coder autour de ça. –