Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
非图像url的Javascript正则表达式_Javascript_Regex_Url - Fatal编程技术网

非图像url的Javascript正则表达式

非图像url的Javascript正则表达式,javascript,regex,url,Javascript,Regex,Url,在JavaScript中,我想从字符串中提取一个非图像url,例如 等等 我想提取第一个和第三个非图像URL,忽略第二个和第四个图像URL 我尝试了以下方法,但没有成功 (https?:)?\/\/?[^\'"<>]+?^(\.(jpe?g|gif|png)) 这是对以下图像URL正则表达式RE的修改,我为其添加了^for而不是上述代码段 (https?:)?//?[^\'"<>]+?\.(jpg|jpeg|gif|png) 注意:以上示例中的RE

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

等等

我想提取第一个和第三个非图像URL,忽略第二个和第四个图像URL

我尝试了以下方法,但没有成功

(https?:)?\/\/?[^\'"<>]+?^(\.(jpe?g|gif|png))
这是对以下图像URL正则表达式RE的修改,我为其添加了^for而不是上述代码段

(https?:)?//?[^\'"<>]+?\.(jpg|jpeg|gif|png)
注意:以上示例中的RE区分大小写,如果有任何使RE不区分大小写的线索,您可以使用like,它将排除字符串中的任何内容 假设您的URL像您的示例一样是新行分隔的,这样的东西应该可以工作

(?!.*(jpg|jpeg|gif|png).*).*

编辑:看起来我的示例不起作用,希望它至少指向了正确的方向,首先删除图像:

var tmp = text.replace(/https?:\/\/[\S]+\.(png|jpeg|jpg|gif)/gi, '');
然后匹配:

var m = tmp.match(/https?:\/\/[\S]+/gi);
console.log(m);

为什么不尝试匹配这些图像,然后在匹配时拒绝它们?语法“^”不表示“不”,它表示换行,然后尝试匹配其中的内容。一个选项可以是使用curl检查url是否是要否定的图像?若你们能提供上述代码片段的修改版本吗?即使它能工作,它也不能工作在像这样的URL上http://example.com/gifts/index 因为gif将在礼物上匹配。理想情况下,需要一个负面的查找,但是JS不支持这个,嗨,Eru,谢谢你的回答,但这对我来说不适用于https?:?\/\/?[^\']+*jpg | jpeg | gif | png.*.*为图像或非图像url返回true。可能是我遗漏了你的观点,在哪里使用你的否定片段。