Преобразование HTML для электронной почты в виде обычного текста с сохранением гиперссылок (href) в неизменном виде
Вышеупомянутая функция, опубликованная hypoxide, работает нормально, но я хотел кое-что, что в основном конвертировало бы 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 / URI href, а $2
- текст с гиперссылкой. С ссылками непосредственно в текстовом виде большинство почтовых клиентов SMTP преобразуют их, чтобы пользователь мог щелкнуть по ним.
Надеюсь, вы найдете это полезным.