【问题标题】:how to parse a <a> href(s) in string with image tags如何使用图像标签解析字符串中的 <a> href(s)
【发布时间】:2016-02-01 15:36:01
【问题描述】:
 function replaceTextFunction(g){
        var replacedText,replacePattern1,replacePattern2,replacePattern3;
        replacePattern1=/(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
        replacedText=g.replace(replacePattern1,'<a href="$1" target="_blank">$1</a>');
        replacePattern2=/(^|[^\/])(www\.[\S]+(\b|$))/gim;
        replacedText=replacedText.replace(replacePattern2,'$1<a href="http://$2" target="_blank">$2</a>');
        replacePattern3=/(([a-zA-Z0-9\-\_\.])+@[a-zA-Z\_]+?(\.[a-zA-Z]{2,6})+)/gim;replacedText=replacedText.replace(replacePattern3,'<a href="mailto:$1">$1</a>');
        return replacedText;
        }

好的,所以我有这个功能。它的目的是解析字符串中的链接并为人工点击放置漂亮的包装器。在这方面效果很好。

我的问题是当我在字符串中有这样的图像时

<img src="http://yada.yada/image.jpg">

这样解析

<img src="<a href="http://yada.yada/image.jpg" target="_blank">">

当然,我不希望出现这种语法恐怖。请帮忙! :(

【问题讨论】:

  • 你在做什么img锚定或锚定img?
  • 仅使用您的解析器检查标签内的文本(例如&lt;p&gt;http://&lt;/p&gt;,而不是属性。

标签: javascript image replace href


【解决方案1】:

试试这个:

function replaceTextFunction(g){
        var replacedText,replacePattern1,replacePattern2,replacePattern3;
        replacePattern1=/(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])(?![^<]+>)/gim;
        replacedText=g.replace(replacePattern1,'<a href="$1" target="_blank">$1</a>');
        replacePattern2=/(^|[^\/])(www\.[\S]+(\b|$))(?![^<]+>)/gim;
        replacedText=replacedText.replace(replacePattern2,'$1<a href="http://$2" target="_blank">$2</a>');
        replacePattern3=/(([a-zA-Z0-9\-\_\.])+@[a-zA-Z\_]+?(\.[a-zA-Z]{2,6})+)(?![^<]+>)/gim;replacedText=replacedText.replace(replacePattern3,'<a href="mailto:$1">$1</a>');
        return replacedText;
        }

我在您的正则表达式中添加了一个否定的前瞻,这使您的正则表达式忽略 HTML 标记内的 url。

【讨论】:

  • 谢谢!有用!!!!!!!!!!!!!!!我对正则表达式的工作原理缺乏了解是显而易见的。我会更加努力的训练! 李岩竖起大拇指
猜你喜欢
  • 1970-01-01
  • 2014-07-20
  • 2021-03-09
  • 2010-11-07
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2016-01-17
  • 2019-04-11
相关资源
最近更新 更多