Проблема регулярных выражений в Javascript - PullRequest
0 голосов
/ 21 июля 2010

Мне нужно сделать HTML-страницы, где я хочу поделиться рекламным пространством с другими пользователями AdSense. Я пытаюсь использовать JavaScript для поиска и замены кода AdSense с помощью выражения регулярного выражения, но я застрял.

Это часть строки, которую я пытаюсь найти.

паб-111111111111111" ;

/ * 336x280, создано 12.12.12 * /

google_ad_slot = "2222222222";

И это javascript, содержащий выражение регулярного выражения, которое я пробовал (из многих других комбинаций).

    <script type="text/javascript">
var html = document.body.innerHTML;
html = html.replace(/pub-([\d])*(";)\r(.)*\r(.)*([\d])(";)/i,'pub-444444444444444";google_ad_slot = "3333333333333";');
document.body.innerHTML = html;
</script>

Но не повезло. Все, что RegEx, кроме pub - ([\ d]) * часть не оценивается, как я вижу, используя firebug.

1 Ответ

1 голос
/ 21 июля 2010

Попробуйте изменить

/pub-([\d])*(";)\r(.)*\r(.)*([\d])(";)/i

до

/pub-(\d*)(";)\n(.*)\n(.*)(\d)(";)/gim

Вам необходимо хранить токен * рядом с тем, что он изменяет, а не за пределами группы захвата. Кроме того, \n с большей вероятностью будет соответствовать вашим новым строкам, чем \r. Или вы можете использовать [\r\n]+

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...