Используйте Match, а затем замените в JavaScript Regex - PullRequest
0 голосов
/ 05 января 2010

Рассмотрим:

    <% 
        content = ""+Request.Form("completehtml")+"";
        contentmatch = content;
        contentmatch = contentmatch.match(/(<div class="content">[\s\S]+?)(?=[##])/ig); 
    %>

Если я получаю указанное выше совпадение и оно дает мне некоторый HTML-код: возможно ли найти текст в совпадении и заменить его снова?

    contentmatch = contentmatch.replace(/test/ig, 'working');

Проблема с заменой заключается в том, что Internet Explorer говорит, что она не поддерживается. В чем причина?

    <% 
        content = ""+Request.Form("completehtml")+"";
        contentmatch = content;
        contentmatch = contentmatch.replace(/>\s+?</ig, '><'); 
        contentmatch = contentmatch.match(/(<div class="content">[\s\S]+?)(?=[##])/ig); 
    %>

ОК, похоже, я понял это частично - если вы делаете замену до матча, кажется, что он работает, если вы делаете это после матча, похоже, не работает.

Можно ли сделать замену после матча?

1 Ответ

0 голосов
/ 05 января 2010

Ваша линия:

contentmatch = contentmatch.match(/(<div class="content">[\s\S]+?)(?=[##])/ig);

заменяет переменную contentmatch результатом метода match. Этот результат является массивом. У массивов действительно есть метод замены (в FF), но он делает что-то отличное от метода String, что вам и нужно.

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