在JavaScript中,我想从字符串中提取非图像URL,例如
我想提取第一个和第三个(非图像)网址,并忽略第二个和第四个(图像)网址。
我尝试了以下无效的
(https?:)?\/\/?[^\'"<>]+?^(\.(jpe?g|gif|png))
以下图片网址正则表达式(RE)的修改,我为其添加了^()(for not)上面的代码段
(https?:)?//?[^\'"<>]+?\.(jpg|jpeg|gif|png)
注意:以上示例中的RE区分大小写,如果有任何线索可以使RE不区分大小写
答案 0 :(得分:0)
您可以negative lookahead使用these examples它会排除任何字符串 假设您的网址是新行分隔的,就像您的示例一样,这样的内容应该可以正常工作
(?!.*(jpg|jpeg|gif|png).*).*
编辑:看起来我的例子不起作用,希望它至少指向oyu正确的方向
答案 1 :(得分:0)
首先删除图像:
var tmp = text.replace(/https?:\/\/[\S]+\.(png|jpeg|jpg|gif)/gi, '');
然后匹配:
var m = tmp.match(/https?:\/\/[\S]+/gi);
console.log(m);