我有一个<img>
,我需要在路径中更改两位数字。我不知道如何编写正则表达式。
<img src="/cms/ig/immopix/100/9165c73366c8830058b0f95c0fcacef5_100.jpg" />
^ ^
| |
------------------------------------
|
replace those "1" in "6"
so it looks like this
------------------------------------
| |
<img src="/cms/ig/immopix/600/9165c73366c8830058b0f95c0fcacef5_600.jpg" />
img名称是md5值,也可以包含“100”,所以我不能只替换每个“100”。我怎么能这样做?
所以在DOM中有一些img标签我像这样循环
$('.object-overview-wrap').each(function(i){
var img = $(this).children('.img-wrap').children('img');
console.log(img.attr('src'));
var imgSrc = img.attr('src');
img.attr('src', '/cms/ig/immopix/600/88f9f658ed1d506ce36b28565b79405f_600.jpg');
});
console.log给了我:/cms/ig/immopix/100/9165c73366c8830058b0f95c0fcacef5_100.jpg我想替换,但我不知道怎么做。
非常感谢帮助和解释如何编写和使用正则表达式的链接!
答案 0 :(得分:5)
您可以将"/100/"
替换为"/600/"
,然后将"_100."
替换为"_600."
。
正则表达式当然可以在这里工作,但这种方式更简单。
答案 1 :(得分:2)
这适用于您的情况:
var s='<img src="/cms/ig/immopix/100/9165c73366c8830058b0f95c0fcacef5_100.jpg" />';
var r = s.replace(/100\b/g, "600");
//=> <img src="/cms/ig/immopix/600/9165c73366c8830058b0f95c0fcacef5_600.jpg" />
或者更严格:
var r = s.replace(/([/_])100\b/g, "$1600");
//=> <img src="/cms/ig/immopix/600/9165c73366c8830058b0f95c0fcacef5_600.jpg" />
答案 2 :(得分:0)
我的方法是:避免使用正则表达式。请使用:
var mystring = srcString.split('/');
mystring[4]=600;
mystring[5] = mystring[5].split('_')[0] + '_' + '600.jpg';
mystring.join('/');
或类似的。
使用split
和join
很有趣。但是一个简单的替换也可以在这里工作