优雅的jQuery替换多个值

时间:2011-03-30 17:13:14

标签: javascript jquery

我使用.replace()和jQuery从img URL中删除不同的字符串:

src = src.replace("/_w", "");
src = src.replace("_jpg", "");
src = src.replace("_jpeg", "");                 
src = src.replace("_png", "");                  
src = src.replace("_gif", "");

正如你可以看到它非常具有灵性而且不是很聪明,无论如何,我可以用更优雅的东西来代替它。

基本上,网址将始终为以下之一:

http://local.com/images/_w/image_jpg.jpg
http://local.com/images/_w/image_jpeg.jpeg
http://local.com/images/_w/image_png.png

无论如何我可以写一个.replace()来删除/ _w /然后删除最后一个'。'之间的所有字符。在URL和最后一个下划线?

2 个答案:

答案 0 :(得分:2)

未经测试 - 但我认为应该这样做

src = src.replace(/\/_w|_jpg|_png|_gif/g,'')

或者更好......

src = src.replace(/\/_w(.+?)_(jpg|png|gif)\./,"$1.")

匹配/ w,然后将所有字符存储到_gif或_jpg等...然后用存储的内容替换所捕获的所有内容(后跟一个点)。

答案 1 :(得分:0)

正则表达式是你的朋友。

如果每次可以使用/_w.之间替换所有内容非常安全:

  src = src.replace(/\/_w[^.]*/,'');

如果您熟悉正则表达式的基础知识,它将为您节省无数问题的时间。这是一个非常多功能的工具。

A good reference

A Regex tester