Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   Вопрос про Regexp (https://javascript.ru/forum/css-html/29452-vopros-pro-regexp.html)

Zlyden 28.06.2012 13:47

Вопрос про Regexp
 
Нужно удалять вложенные теги. К примеру, есть тег <tag>. Замена над примером
Код:

<tag>
 ab
 <tag>cd</tag>
 ef
</tag>

должна привести к такому виду:
Код:

<tag>
ab
cd
ef
</tag>

При этом такой пример:
Код:

<tag>ab</tag>
 <tag>cd</tag>

должен таковым и остаться. Как сделать такое с помощью регулярок? Ну или хотя бы не наваливая тонну кода со множеством вложенных циклов?

Zlyden 28.06.2012 23:35

Вопрос решён. Выкладываю, если кому надо. Парсит вложенные <tag>..<tag> и </tag>..</tag> независимо, для моей задачи так даже лучше.
a=a.replace(r("(<"+tag+">)([\\s\\S]*?)(<\\/?"+tag+">)"),function($0,$1,$2,$3){
	if($3.charAt(1)!='/'){
		return $1+$2;
	}
	else{
		return $0;
	}
});
a=a.replace(r("(<\\/"+tag+">)([\\s\\S]*?)(<\\/?"+tag+">)"),function($0,$1,$2,$3){
	if($3.charAt(1)=='/'){
		return $2+$3;
	}
	else{
		return $0;
	}
});


Часовой пояс GMT +3, время: 12:46.