Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Запутался с регуляркой (https://javascript.ru/forum/misc/53671-zaputalsya-s-regulyarkojj.html)

zhurchik 12.02.2015 22:47

Запутался с регуляркой
 
Не могу достать весь код из тега <script>
Нужно учесть переносы строк, но я вписываю \s* по всякому пробовал, ни работает

// В строке (переменной) d "содержится" куча предложений, переносов строк, пробелов а так же тег <script> в котором JS код который нужно выдернуть
d.replace(/<script type="text\/javascript">(.+)<\/script>)/mg,function(str, p1)
		{
				alert(p1);//Выводим полученный результат

			return "";
		});

Vlasenko Fedor 13.02.2015 00:10

Можешь обїяснить зачем єто извращение нужно?

zhurchik 13.02.2015 00:38

Poznakomlus,
Через innerHTML не рекомендуется вставлять JS код, да и не везде такой подход работает, а мне нужно выдернуть весь JS до того как данные будут вставлены через innerHTML и подключить код через createElement("script")....

рони 13.02.2015 00:58

zhurchik,
:-?
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<script>
document.body.innerHTML.replace(/<scri[\s\S]*?>([\s\S]*?)<\/scri/mg,function(str, p1)
		{
				alert(p1);//Выводим полученный результат

			return "";
		});
</script>
</body>

</html>

Vlasenko Fedor 13.02.2015 00:59

через через innerHTML код вставляется но не исполняется :)
<div id="test"></div>
<script>
  test.innerHTML = '<script>alert("Yes")<\/script>';
  var scr = document.querySelector('script');
  eval(scr.text);
</script>

zhurchik 13.02.2015 09:54

рони,
Спасибо, друг)))

zhurchik 13.02.2015 09:55

Poznakomlus,
Я знаю. Но код лучше запустить до того как будет вставлено содержимое, поэтому я решил для начала его выдернуть

zhurchik 13.02.2015 13:08

Poznakomlus,
Дело в том, что содержимое от сервера я получаю в виде HTML, а сделано это для того, чтобы сайт работал даже когда JS отключен (то-бишь, для поисковиков), то-есть, с таким подходом можно будет делиться ссылками и т.д., а если все это дело посадить на JSON или XML то по прямой ссылке уже не перейти.
Вообще как то так, надеюсь смог рассказать!


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