Я пытаюсь обернуть вокруг головы с помощью регулярных выражений и заменить() с JavaScript, но до сих пор не увенчались успехомКак я могу выполнить условную замену с помощью JavaScript RegExp?
Предположим, что у меня есть строка, содержащая это:
<img alt="a picture of ..." src="image/1533?foo=1&bar=2$zot=3" width="500" />
Если zot=3
я хочу удалить foo (и его значение) (или заменить foo=x
пустой строкой).
Замена будет выглядеть следующим образом:.
<img alt="a picture of ..." src="picture/1533?bar=2$zot=3" width="500" />
Я хочу, чтобы это было в пуленепробиваемыми, насколько это возможно, как я никогда не может быть уверен, в каком порядке параметры URL будут приведены в
ли это возможно с использованием одного регулярного выражения, или есть ли лучшие решения?
Я думал об использовании DOM и
- обхода всех
img
узлов - получить
src
атрибут - сделать тест, если
@src
значения имеетzot=3
- , если он имеет
zot=3
заменитьfoo=1
с пустая строка
Конечно, я должен убедиться, что любые амперсанды и т. Д. Тоже удалены.
Но я надеюсь, что решить ее с помощью регулярных выражений или два,
Спасибо за любые ответы и советы!
Значит, глобальное значение String.replace не рекомендуется? – 2009-05-19 22:24:14
el.src - это String - он имеет метод .replace(), унаследованный через цепочку прототипов. Не уверен, что вы подразумеваете под «global String.replace()» – gnarf
Ну, извините, мое описание немного не так. Я обнаружил, что у меня нет XML/HTML-документа, но есть только строка, что означает, что DOM может быть не вариантом. Я должен был бы сделать строку XML-фрагменту (я думаю, JavaScript может это сделать), но я надеюсь, что не будет кодовым для этого. – 2009-05-19 22:34:58