Вышеупомянутая функция, опубликованная hypoxy, отлично работает, но я был после чего-то, что в основном конвертирует HTML, созданный в редакторе Web RichText (для например, FCKEditor) и очистить все HTML, но оставить все ссылки за то, что я хотел, чтобы и HTML, и версия обычного текста помогли создать правильные части для электронной почты STMP (как HTML, так и обычного текста).
После долгого времени поиска Google я и мои коллеги придумали это с использованием механизма регулярных выражений в Javascript:
str='this string has <i>html</i> code i want to <b>remove</b><br>Link Number 1 -><a href="http://www.bbc.co.uk">BBC</a> Link Number 1<br><p>Now back to normal text and stuff</p>
';
str=str.replace(/<br>/gi, "\n");
str=str.replace(/<p.*>/gi, "\n");
str=str.replace(/<a.*href="(.*?)".*>(.*?)<\/a>/gi, " $2 (Link->$1) ");
str=str.replace(/<(?:.|\s)*?>/g, "");
переменная str
запускается следующим образом:
this string has <i>html</i> code i want to <b>remove</b><br>Link Number 1 -><a href="http://www.bbc.co.uk">BBC</a> Link Number 1<br><p>Now back to normal text and stuff</p>
, а затем после запуска кода выглядит так: -
this string has html code i want to remove
Link Number 1 -> BBC (Link->http://www.bbc.co.uk) Link Number 1
Now back to normal text and stuff
Как вы можете видеть, все HTML-файлы были удалены, и ссылка была сохранена с гиперссылкой текста по-прежнему неповрежденными. Также я заменил теги <p>
и <br>
на \n
(символ новой строки), чтобы сохранилось какое-то визуальное форматирование.
Чтобы изменить формат ссылки (например, BBC (Link->http://www.bbc.co.uk)
) просто отредактируйте $2 (Link->$1)
, где $1
- URL-адрес / URL-адрес href, а $2
- гиперссылнный текст. С помощью ссылок непосредственно в теле обычного текста большинство SMTP Mail Clients преобразуют их, поэтому пользователь имеет возможность нажимать на них.
Надеюсь, вы найдете это полезным.