非图像网址的Javascript正则表达式

时间:2014-01-04 09:39:08

标签: javascript regex url

在JavaScript中,我想从字符串中提取非图像URL,例如

  

http://example.com

     

http://example.com/a.png

     

http://www.example.ccom/acd.php

     

http://www.example.com/b.jpg等。

我想提取第一个和第三个(非图像)网址,并忽略第二个和第四个(图像)网址。

我尝试了以下无效的

(https?:)?\/\/?[^\'"<>]+?^(\.(jpe?g|gif|png))

以下图片网址正则表达式(RE)的修改,我为其添加了^()(for not)上面的代码段

(https?:)?//?[^\'"<>]+?\.(jpg|jpeg|gif|png)

注意:以上示例中的RE区分大小写,如果有任何线索可以使RE不区分大小写

2 个答案:

答案 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);