【发布时间】:2009-07-02 03:23:47
【问题描述】:
我在将图片网址与空格匹配时遇到了很多困难。
我需要做这个
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。
在这一点上,坦率地说,甚至不确定这是否可能。任何帮助表示赞赏,谢谢。
试图逃离保罗:
.escape(/http:\/\/(.*)\/([^\<\>?:;]*?) ([^\<\>?:;]*)(\.(jpe?g|png|gif))/)
我可以做到这一点的另一种方法是在 PHP 中转义服务器端,在 PHP 中我可以直接弄乱文件名,而不必在正则表达式中匹配它。
但据我所知,htmlentities 之类的东西不适用于空间。在这个方向上的任何提示也会很好。
【问题讨论】:
-
你必须在你调用正则表达式的任何字符串上调用 escape...
-
什么字符串?我需要匹配一个(y)图像网址。
-
你需要匹配什么?
标签: php javascript jquery regex