替换最后7个字符的字符串?

时间:2012-11-05 09:43:35

标签: javascript regex replace

这是我的代码:

​var myStr = "/private_images/last-edit/image-work-med.png";​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

我想用med.png替换最后7个字符(big.png)。或者,如您所见,-拆分后的最后一次出现。

我该怎么办?我认为正则表达式,但我不是他们的冠军。试过:

myStr = myStr .replace(/-([^-]*)$/, "big" + '$1');

但它取代了最后-,而不是最后一次出现。结果是/private_images/last-edit/image-workbigmed.png

8 个答案:

答案 0 :(得分:2)

我会坦白:我对正则表达式的态度也不是很好。

如何使用split进行拆分?简洁,但更容易理解。

var myStr = "/private_images/last-edit/image-work-med.png";​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
var strs = myStr.split('-');

// Change the last element.
strs[strs.length - 1] = "big.png";

// And put back the right string.
myStr = strs.join('-');

答案 1 :(得分:1)

您可以使用正则表达式,或者您可以使用一些字符串方法并使您的意图清晰。

var idx = myStr.lastIndexOf("-");
var newStr = myStr.substring(0, idx) + "big.png";

答案 2 :(得分:1)

不使用RegExp即可使用:

var str = "/private_images/last-edit/image-work-med.png"
   ,replace = 'big.png'
   ,nwstr = str.slice(0,str.lastIndexOf('-')+1)+replace;
//=> nwstr now "/private_images/last-edit/image-work-big.png"

更多'功能性':

var nwstr = function(s){
              return s.replace(s.substr(-7),'');}(
               '/private_images/last-edit/image-work-med.png'
           )+'big.png'

答案 3 :(得分:1)

var url = "/private_images/last-edit/image-work-med.png"; 
var index = url.lastIndexOf('-');
url = url.substring(0, index+1);
var url2 = "big.png";
var output = url.concat(url2); alert(output);

检查

答案 4 :(得分:0)

只需添加' - '你的正则表达式和替换字符串:

myStr = myStr .replace(/-([^-]*)\.png$/, "-big.png");

或者,如果您希望文件扩展名可变:

myStr = myStr .replace(/-([^-]*)\.([a-z]+)$/, "-big.$2");

答案 5 :(得分:0)

为什么不使用replace:

var myStr = "/private_images/last-edit/image-work-med.png";​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

var newStr = myStr.replace("med.png", "big.png");

根据您问题中指定的要求,这就足够了。

答案 6 :(得分:0)

如果你想使用字符串函数 -

var myStr = "/private_images/last-edit/image-work-med.png";
var cleanedupStr = myStr.slice(0, myStr.lastIndexOf("-"));

String.slice

答案 7 :(得分:0)

如果您知道它将是.png文件:

var ex = new Regex(@"-\w*.png$");
var myStr = "/private_images/last-edit/image-work-med.png";​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​
myStr = ex.Replace(myStr, "-big.png");

它有效,但如果它是jpg它不会......