Удалить вложенные теги в тег <a> insisde с помощью регулярных выражений javascript?

0

Эта функция удаляет любой тег <a> в javascript

replace(/<a\b[^>]*>(.*?)<\/a>/i,"")

Но он не удаляет вложенные теги, например, он не работает над этим тегом

<a href="http://feeds.feedburner.com/~ff/ardroid?a=AqChTdtuXxo:V799F6z5h7k:qj6IDK7rITs">
   <img src="http://feeds.feedburner.com/~ff/ardroid?d=qj6IDK7rITs" border="0">
</a>

Я хочу еще одно регулярное выражение, которое устранит любой тег <a> со всем содержимым

  • 0
    stackoverflow.com/a/1732454/1317805
  • 0
    обработка HTML с помощью регулярных выражений невозможна, чтобы получить правильное в целом stackoverflow.com/questions/1732348/… .
Показать ещё 4 комментария
Теги:

3 ответа

2
Лучший ответ

он рекомендовал использовать подход, основанный на dom, для определения html

используя jQuery:

$('a').remove();

Несмотря на то что:...

это, вероятно, будет работать в 95% случаев

/<a[\s\S]*?<\/a>/
0

как указывали другие, не рекомендуется анализировать HTML с помощью regexp, но вашему регулярному выражению нужны некоторые незначительные изменения, чтобы иметь возможность делать то, что вам нужно

var s = '<a href="http://feeds.feedburner.com/~ff/ardroid?a=AqChTdtuXxo:V799F6z5h7k:qj6IDK7rITs">\n\
   <img src="http://feeds.feedburner.com/~ff/ardroid?d=qj6IDK7rITs" border="0">\n\
</a><span></span>';
s.replace(/<a\b[^>]*>([^]*)<\/a>/im,"") // result will be <span></span>

просто вам нужно сделать его совпадающим с многострочными строками, дополнительную информацию можно найти на странице https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp

  • 0
    @ridgerunner, это допустимо в javascript, попробуйте: 'hi'.match(/[^]/g) //["h", "i"]
  • 1
    конечно я попробовал, вот результат на FF 25.0.1: imagebin.org/280177 / cc @OGHaza
Показать ещё 4 комментария
0

Вы не можете точно использовать регулярное выражение для обработки HTML, поэтому для этого вы должны использовать DOM.

http://jsfiddle.net/EMd2e/

$('a').contents().remove();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню