Добрый День. Нужно решить следующую задачу. Найти все email адреса на любой странице и изменить им цвет. То есть адрес может быть как ссылкой, так и просто частью какого либо текста. Как пример можно привести HTML mail.ru, где email адрес находится рядом с "входящими" или возле выхода. Проблема в том, что бы найти такие адреса на странице. Функция с валидацией адреса есть
function checkEmailValidate (emailAddress) {
const regexEmail = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
regexEmail.test(emailAddress)
}
var replaced = $("#content").html().replace( /(?![^<]+>)([A-Za-z0-9_\-\.]+\@[A-Za-z0-9_\-\.]+\.[A-Za-z]{2,4})/g,'<span class="red">$1</span>');
$("#content").html(replaced);
.red{color:red;}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="content">
Текст внутри тега a <a href="mailto:info@mail.ru">info@mail.ru</a><br>
Просто адрес, написанный в тексте info@mail.ru 1
</div>
html() - получаем текст страницы вместе с тегами.
(?![^<]+>) - проверяем, чтобы адрес не был внутри тега, например href="mailto:info@mail.ru".
^ и $ - в начале и в конце нужно убрать, эти символы означают начало и конец строки
g - все вхождения
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости