如何正则匹配包含特定字符串的字符串

毛线_197140
  • 560

clipboard.png

clipboard.png

图中画红线的地址是我想要匹配出来的,因为网页源码里全是src="" 直接匹配会出现各种结果,我想要匹配出src地址里面包含player字符串的,求指点

回复
阅读 23k
3 个回答

你这个问题描述的太模糊了,匹配src="中间带有player的字符串"是吧,下面的正则应该就可以了:

/src=\"([\s\S]*?player[\s\S]*?)\"/g
温柔的码农
  • 380

这个? arr 数据是你要的 src 地址们

var arr = [];
$('iframe').each(function(i, e) {
    if (/player/.test($(e).attr('src')) {
        arr.push(e);
    }
});

console.log(arr)

不明觉厉, 不知道如何用一个正则处理返回所有的结果. 似乎还是要用循环, 举例如下, 如果你说的把整个页面源码当成一个字符串的话:

var str = '<iframe class="mask" frameborder="0" scrolling="no" style="width:100%;height:61px;" src="http://player.cfdmsklafjdks"></iframe><iframe class="mask" frameborder="0" scrolling="no" style="width:100%;height:61px;" src="http://player.cfdmsklafjdks"></iframe><iframe class="mask" frameborder="0" scrolling="no" style="width:100%;height:61px;" src="hahah"></iframe>';


// 1. 匹配 src="xxxxx"
var re = /src=\"http:\/\/player.[^"]*\"/gm;

var temp;
var newArr = [];
while ((temp = re.exec(str)) !== null) {
  newArr.push(temp[0]);
}
console.log(newArr);
宣传栏