Próbuję zwrócić zawartość dowolnych tagów w treści tekstu. Obecnie używam następującego wyrażenia, ale przechwytuje tylko zawartość pierwszego znacznika i po nim ignoruje inne.Jak uzyskać wyrażenie regularne pasujące do wielu znaczników skryptu?
Oto próbka html:
<script type="text/javascript">
alert('1');
</script>
<div>Test</div>
<script type="text/javascript">
alert('2');
</script>
Moje regex wygląda następująco:
//scripttext contains the sample
re = /<script\b[^>]*>([\s\S]*?)<\/script>/gm;
var scripts = re.exec(scripttext);
Gdy uruchomię to na IE6, zwraca 2 mecze. Pierwszy zawierający pełny tag, drugi zawierający alert ("1").
Po uruchomieniu go na http://www.pagecolumn.com/tool/regtest.htm daje mi 2 wyniki, z których każdy zawiera tylko znaczniki skryptu.
Czy rzeczywiście pisanie regex w javascript? Czy możesz dołączyć pasujący kod. – cdm9002
Korzystanie z RegexBuddy 3.2.1, to działa dobrze. Przechwytuje zawartość obu tagów. – Phoexo
Używam/gm. Zmodyfikowałem nieco wyrażenie regularne. Teraz zwraca 2 wyniki, z których każdy zawiera znacznik skryptu, ale zawiera również kod HTML. \t . Cholera, udaremniony ponownie! "); ' – Svante
@Svante co z tym? :) – kangax