我将字符串中的图片网址与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
不幸的是,这没有用。尝试了这种表达的不同变体,但现在结果。
感谢您提前提供任何帮助, 曼努埃尔
答案 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' )