Я знаю, что об этом здесь говорилось, но не было предложено решений для точной проблемы. Пожалуйста, посмотрите ...
Я использую функцию для преобразования простых текстовых URL-адресов в интерактивные ссылки. Вот что у меня есть:
<script type='text/javascript' language='javascript'>
window.onload = autolink;
function autolink(text) {
var exp = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
document.body.innerHTML = document.body.innerHTML.replace(exp,"<a href='$1'>$1</a>");
}
</script>
Это делает
https://stackoverflow.com/
выглядит как:
https://stackoverflow.com/
Работает, но также заменяет существующие ссылки HTML вложенными ссылками.
Итак, действительная HTML-ссылка, такая как
<a href="https://stackoverflow.com/">StackOverflow</a>
Становится что-то грязное, как:
<a href="https://stackoverflow.com/<a href="https://stackoverflow.com/">StackOverflow</a>">StackOverflow</a>...
Как я могу исправить выражение, чтобы игнорировать содержимое тегов ссылок? Спасибо!
Я новичок ... Я едва понимаю код регулярного выражения. Пожалуйста, будьте нежны :) Еще раз спасибо.