开发者

Elegant jQuery replace on mutiple values

开发者 https://www.devze.com 2023-02-21 10:49 出处:网络
Im using .replace() with jQuery to remove different strings from an img URL: src = src.replace(\"/_w\", \"\");

Im using .replace() with jQuery to remove different strings from an img URL:

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

As you can see its pretty primative and not very clever, is there anyway I can replace this with something a little more elegant.

Essentially the url will always be 1 of the following:

http://local.com/images/_w/image_jpg.jpg
http://local.com/images/_w/image_jpeg.jpeg
http://local.com/images/_w/image_png开发者_StackOverflow.png

Is there anyway I can write a .replace() to remove the /_w/ then remove all characters between the last '.' in the URL and the last underscore?


not tested - but I think this should do it

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

or better still...

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

which matches /w, then stores all characters up to _gif or _jpg etc... then replaces everything captured with what was stored (followed by a dot).


Regular expressions are your friend.

If it's really safe to replace everything between /_w and . every time you can use:

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

If you become familiar with the basics of regex it will save you time on countless problems. It's an incredibly versatile tool.

A good reference

A Regex tester

0

精彩评论

暂无评论...
验证码 换一张
取 消