[英]JavaScript regular expression to replace HTML anchors
我得到了一个 HTML 字符串,我想从这个字符串中将一些特殊的 a 标签转换为别的东西。 我需要这个 TinyMCE 插件。 我试图改变 Wordpress wpgallery 插件。
例如:这些在 HTML 字符串中
<a href="http://www.yahoo.com">Yahoo</a>
<a href="http://www.google.com">Google</a>
<a href="#" rel='special' title='link cat_id="4" content_id="5" content_slug="Slug 1"'>Some where else</a>
在这里,我必须找到一个特殊的链接并将其从它的标题值转换为其他内容,例如:
{link cat_id="4" content_id="5" content_slug="Slug 1"}
我需要这样的返回值将其插入 MySQL
<a href="http://www.yahoo.com">Yahoo</a>
<a href="http://www.google.com">Google</a>
{link cat_id="4" content_id="5" content_slug="Slug 1"}
我试过这个
function getAttr(s, n) {
n = new RegExp(n + '="([^"]+)"', 'g').exec(s);
return n ? tinymce.DOM.decode(n[1]) : '';
};
return co.replace(/[^<]*(<a href="([^"]+)">([^<]+)<\/a>)/g, function(a,im) {
var cls = getAttr(im, 'rel');
if ( cls.indexOf('special') != -1 )
return '{'+tinymce.trim(getAttr(im, 'title'))+'}';
return a;
});
这个
/[^<]*(<a href="([^"]+)">([^<]+)<\/a>)/g
没有找到带有rel
eq 到“特殊”的标签,但没有找到所有其他标签。
您可能想查看 DOMDocument 和相关类。 他们在解析 HTML 方面比自制的正则表达式解决方案要好得多。
您可以使用提供的标记创建 DOM 文档,执行 getElementsByTagName 以获取所有超链接,扫描它们的属性以查找值为 special 的 rel 属性,然后采取适当的操作。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.