我有这个案子:
我需要匹配<a></a>
元素中的href链接。
我的正则表达式<a href="([^"]*)"
检查它在这里工作 - &gt; https://regex101.com/r/tB1hJ0/1
问题是当我尝试在javascript中使用此正则表达式时。
如果我尝试使用这些实现,我得不到相同的结果:
var input = '2\
<p><a href="http://www.quackit.com/html/tutorial/html_links.cfm">Example Link</a></p>\
<div class="more-info"><a href="http://www.quackit.com/html/examples/html_links_examples.cfm">More Link Examples...</a></div>';
console.log((/<a href="([^"]*)"/gmi).exec(input)); //["<a href="http://www.quackit.com/html/tutorial/html_links.cfm"", "http://www.quackit.com/html/tutorial/html_links.cfm",
console.log(input.match(/<a href="([^"]*)"/gmi)); //["<a href="http://www.quackit.com/html/tutorial/html_links.cfm"", "<a href="http://www.quackit.com/html/examples/html_links_examples.cfm""]
我做错了什么?
答案 0 :(得分:1)
您需要获取捕获组,而不是匹配的文本。
var re = /<a href="([^"]*)"/gm;
var str = '2\n<p><a href="http://www.quackit.com/html/tutorial/html_links.cfm">Example Link</a></p>\n<div class="more-info"><a href="http://www.quackit.com/html/examples/html_links_examples.cfm">More Link Examples...</a></div>';
match = re.exec(str);
while (match != null) {
console.log("Matching text:"+match[0])
console.log("Matching group:"+match[1]);//You need this
match = re.exec(str);
}
答案 1 :(得分:0)
你需要这个用于整个正则表达式匹配
/<a href="([^"]*)"/gm
&#13;