我的字符串<a href="/?an=mb_artist&uid=40574" target="_blank">Maroon 5</a> - <a href="/?an=mb_track&uid=151311">One More Night</a>
尝试使用正则表达式/<a.*>(.*)<\/a>/ig
获取代码的内容,但只获得“再来一晚”,如何获得“Maroon 5”和“再来一晚”?
答案 0 :(得分:1)
在javascript中,你有更多使用标记DOM的方法。
例如jQuery库......
请参阅我的小提琴示例:http://jsfiddle.net/3kfcp156/
$(document).ready(function() {
$('a').each(function(item,idx) {
alert($(this).text());
});
});
答案 1 :(得分:0)
在*
之后添加问号。如果没有问号,正则表达式会尝试匹配尽可能多的字符(贪婪模式)。尽可能少地提出问号。
/<a.*?>(.*?)<\/a>/ig
不
/<a.*>(.*)<\/a>/ig
// ^^^^^ this part matches: <a href="/?an=mb_artist&uid=40574" target="_blank">Maroon 5</a> - <a href="/?an=mb_track&uid=151311">
演示:http://regex101.com/r/hX1aD1/2
更新
var myRe = /<a.*?>(.*?)<\/a>/ig;
var myArray;
while ((myArray = myRe.exec(str)) !== null)
{
var content = myArray[1];
// do something with it
}