Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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
Javascript 匹配URL';没有特定前缀的_Javascript_Regex_Image_Url - Fatal编程技术网

Javascript 匹配URL';没有特定前缀的

Javascript 匹配URL';没有特定前缀的,javascript,regex,image,url,Javascript,Regex,Image,Url,我将字符串中的图像URL与javascript中的以下正则表达式匹配: /\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]?(\.(jpe?g|png|gif))/ig 使用String.replace函数,我将所有匹配项包装在一个-标记中 在第二步中,我想匹配所有URL,这些URL没有上面的文件扩展名作为前缀。我的第一个意图是使用-像这样的操作员: /\b(https?|ftp|

我将字符串中的图像URL与javascript中的以下正则表达式匹配:

/\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]?(\.(jpe?g|png|gif))/ig
使用String.replace函数,我将所有匹配项包装在一个-标记中

在第二步中,我想匹配所有URL,这些URL没有上面的文件扩展名作为前缀。我的第一个意图是使用-像这样的操作员:

/\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]?(?!\.(jpe?g|png|gif))/ig
不幸的是,这没有用。尝试了此表达式的不同变体,但现在有了结果

谢谢你事先的帮助,
manuel

既然你问的是javascript,我想类似这样的东西可能会有所帮助:

var url_re = "\\b(https?|ftp|file):\\/\\/[\\-A-Z0-9+&@#\\/%?=~_|!:,.;]*[\\-A-Z0-9+&@#\\/%=~_|]?"
var re = new RegExp( "^(?!.*"+url_re+"\.(jpe?g|png|gif)).*"+url_re+"\.[a-z0-9_]+" , 'gi' )

如果我的字符串只包含一个url,那么这将起作用。但我有一个文本字符串,可以不包含,一个或多个URL。。。不管怎样,谢谢你的建议。请看我的新答案,如果它能帮助你的话?也不起作用。。。用regexpal.com进行测试;似乎只匹配一个url,而且只有当它是字符串中的唯一内容时,为什么不在浏览器上测试呢?我使用FF进行了测试&一切正常。也使用firefox;)我不会尝试其他方法:只需匹配字符串中的所有URL,并将回调与string.replace函数一起使用