javascript正则表达式从锚标记中提取锚文本,URL和目标

时间:2011-02-08 22:15:00

标签: javascript regex

我试图在循环Json响应时提取锚点的部分(URL,目标,文本),但我无法这样做。

我发现这个问题/答案让我有95%的路在那里:

javascript regex to extract anchor text and URL from anchor tags

var input_content = "blah \
    <a href=\"http://yahoo.com\">Yahoo</a> \
    blah \
    <a href=\"http://google.com\">Google</a> \
    blah";

var matches = [];

input_content.replace(/[^<]*(<a href="([^"]+)">([^<]+)<\/a>)/g, function () {
    matches.push(Array.prototype.slice.call(arguments, 1, 4));
});

alert(matches.join("\n"));

//Gives

//<a href="http://yahoo.com">Yahoo</a>,http://yahoo.com,Yahoo
//<a href="http://google.com">Google</a>,http://google.com,Google

我无法修改上述正则表达式以获取目标。任何帮助,将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:0)

我不确定您是否可以访问jQuery(这也可能比本机正则表达式慢)但您可以从JSON响应中提取标记字符串并将其包装在jQuery中以便于人类可读处理:

$links.find('a').each(function(){
   var text = $(this).text();
   var target = $(this).attr('target');
   var href = $(this).attr('href');

   // Do whatever you were going to do
});