<script>...</script>内のコードの抽出方法
Ajaxで読み込んだHTML文書内にあるスクリプトのコードだけを
抽出したいのですが、正規表現を教えてください。
自分で考えてみたものは、以下の方法です。
これが最良なのかわかりません。
「スクリプトは複数箇所に存在しない」という条件で構いません。
宜しくお願いします。
var HTML = 'ここにHTML';
HTML.match(/.*<script.*>([\w\W]*)<\/script>.*/);
scr = RegExp.$1;
eval(scr);
回答(4件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.4ベストアンサー20pt
>改行が
ああそうか・・・ mフラグ付けると どう?
ダメなら [\s\S]* とか使う事になると思うけど・・・
この回答へのお礼
mフラグの存在を知りませんでした。;_;
scr = s.replace(/[\s|\S]*<script>|<\/script>[\s\S]*/gm,'');
で、コードだけを抽出できました。
ありがとうございました。これですっきり。
HTMLobj = document.createElement("sc");
HTMLobj.innerHTML = HTML;
src = HTMLobj.getElementByTagName("script")[0].innerHTML;
検証してないけど こんなやり方じゃダメ?
この回答へのお礼
試してみました!ばっちりでした!実質1行で済みます!
(.innerTextだと取得できないんですね^^;)
一度書き込んだものから、拾い取るようで無駄なような気もしますが
最小のコードかも?
でも正規表現も知りたいですね。
とにかく有難うございました。
sendRequest( function( oj ) {
HTMLobj.innerHTML = oj.responseText;
eval(HTMLobj.getElementsByTagName('script')[0].innerHTML);
}, '', 'POST', '????.html',true,true );
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











