创建javascript RegEx,它将从url中提取图像名称

时间:2012-10-09 17:59:54

标签: php javascript regex

我希望你能帮助我创建一个从网址中提取图像名称的正则表达式。我一直试图创建几天的正则表达式,但我无法让它工作。

案例: 我有一个用phpThumb创建的图像网址,如下所示: \bla\thumb\phpThumb.php?src=/bla/images/thisistheimage.jpg&fltr[]=wmt|40|B|FFFFFF|georgia.ttf|35&hash=b7412f04f09cd6b488435231651d61453

不,我需要提取以下内容: thisistheimage.jpg

一些事实:

  • 图片名称前面总是有一个“ / ”;
  • 图片名称后面跟一个放大器(& );
  • 图片扩展名也可以是:jpeg,JPG,png,PNG,gif;

我设法抓取的只是(?:png|jpg|gif)的图片扩展名。

你能帮我解决一下我在这种情况下必须使用的正则表达式吗?

我可以在javascript或PHP中使用正则表达式,你在哪里推荐它? (我使用javascript提交表单,表单操作在PHP中完成)。

2 个答案:

答案 0 :(得分:4)

/\/([A-Z0-9_-]{1,}\.(?:png|jpg|gif|jpeg))/i

我认为这应该有效。我标记为不敏感的案例

  • 匹配slash /
  • 字母数字,,和 - 一个或多个[A-Z0-9 - ] {1,}
  • 期间。
  • 扩展名(?:png | jpg | gif | jpeg)

答案 1 :(得分:0)

由于您已标记为,为什么不通过document.images获取所需的图片?

像这样:

// add a proxy to all images in the page

var proxy = 'https://proxytea.appspot.com/'

for (var x=0; x<document.images.length; x++) {
    imagem = document.images[x];
    imagem.src = imagem.src.replace(location.protocol + '//', proxy);
}