繁体   English   中英

javascript正则表达式从路径字符串替换3digitis

[英]javascript regular expression replace 3digitis from path string

我有一个<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我想替换,但是我不知道如何。

非常感谢帮助和解释如何编写和使用正则表达式的链接!

您可以将"/100/"替换为"/600/" ,然后"_100." "_600."

正则表达式当然可以在这里工作,但是这种方式更简单。

这应该适合您的情况:

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" />

我的方法是:避免使用正则表达式。 使用可能是这样的:

var mystring = srcString.split('/');
mystring[4]=600;
mystring[5] = mystring[5].split('_')[0] + '_' + '600.jpg';
mystring.join('/');

或类似。 使用splitjoin很有趣。 但是简单的替换也可以在这里工作

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM