匹配没有特定前缀的URL

时间:2011-10-06 09:56:23

标签: javascript regex image url

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

/\b(https?|ftp|file):\/\/[\-A-Z0-9+&@#\/%?=~_|!:,.;]*[\-A-Z0-9+&@#\/%=~_|]?(\.(jpe?g|png|gif))/ig

使用String.replace函数,我将所有匹配包装在-tag中。

在第二步中,我想匹配所有网址,将上述文件扩展名作为前缀。我的第一个目的是使用这样的?! - 运算符:

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

感谢您提前提供任何帮助, 曼努埃尔

1 个答案:

答案 0 :(得分:0)

既然您正在询问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' )