我在使用空格匹配图像url时遇到了很多困难。正则表达式将图像中的空格变为实体
我需要这个
http://site.com/site.com/files/images/img 2 (5).jpg
到这样一个div:
.replace(/(http:\/\/([^\s]+\.(jpg|png|gif)))/ig, "<div style=\"background: url($1)\"></div>")
下面是关于该线程: regex matching image url with spaces
现在我决定先进行将空格转换为实体,以便上述正则表达式可以工作。
但是我真的有很多困难这样做。 事情是这样的:
.replace(/http:\/\/(.*)\/([^\<\>?:;]*?) ([^\<\>?:;]*)(\.(jpe?g|png|gif))/ig, "http://$1/$2%20$3$4")
替换一个空间,可是其余的仍是空格。
我需要编写一个正则表达式,将http://和图像扩展名(png | jpg | gif)之间的所有空格放入%20。
在这一点上,坦率地说不知道是否有可能。任何帮助表示赞赏,谢谢。
试图Paolo的逃生:
.escape(/http:\/\/(.*)\/([^\<\>?:;]*?) ([^\<\>?:;]*)(\.(jpe?g|png|gif))/)
另一种方式,我可以做到这一点是在PHP中逃脱服务器端,并在PHP我可以用文件名直接一塌糊涂,而无需在正则表达式匹配。
但据我所知,类似htmlentities的东西不适用于空格。这个方向的任何提示都会很棒。
你必须调用转义的任何字符串你打电话给正则表达式... – 2009-07-02 04:08:20
什么字符串?我需要匹配(y)图片网址。 – Mark 2009-07-02 04:35:57
你需要将它与什么相匹配? – 2009-07-02 05:20:38