среда, 20 февраля 2008 г.

Регулярные выражения: Удаление тегов из текста

Итак у нас есть JavaScript и текст, содержащий в себе html-форматирование. Причем теги, использованные для форматирования могут быть любыми, а также иметь атрибуты, стили и т. п. Наша цель - получить обычный плоский текст.

Задача решается следующим JavaScript с использованием регулярных выражений:

source = "<p style="padding-left: 30px;">Для изменения оформления оглавления в рамке веб-страницы <em>необходимо сначала</em> поместить курсор внутрь рамки, содержащей оглавление. Чтобы изменить оформление оглавления в рамке веб-страни<span style="color: #3366ff;"><span style="background-color: #00ff00;">цы, которая использует гиперссылки, измените свой</span></span>ства с<sub>ти</sub><sup>ля</sup> гиперссылки. Чтобы изменить текст отдельной записи, найдите источник записи, измените его, а затем <strong>обновите оглавление</strong>, указатель, таблицу ссылок или список иллюстраций.</p>";
reg = /<.*?>/gi;
dest = dest.replace(reg, '');
alert (dest);

На выходе получаем:

Для изменения оформления оглавления в рамке веб-страницы необходимо сначала поместить курсор внутрь рамки, содержащей оглавление. Чтобы изменить оформление оглавления в рамке веб-страницы, которая использует гиперссылки, измените свойства стиля гиперссылки. Чтобы изменить текст отдельной записи, найдите источник записи, измените его, а затем обновите оглавление, указатель, таблицу ссылок или список иллюстраций.

4 комментария:

  1. Спасибо!
    Очень помогло!

    Алексей. а Вы не в курсе, есть ли на JavaScript аналог PHP-функции strip_tags?

    ОтветитьУдалить
  2. Круто, вот только вместо символов остаются пробелы и перевод коретки. Например в последнем хроме, ie8

    ОтветитьУдалить

Примечание. Отправлять комментарии могут только участники этого блога.