这是我的代码:
var myStr = "/private_images/last-edit/image-work-med.png";我想用big.png替换最后7个字符(med.png)。或者,正如您所看到的,是-拆分后的最后一个事件。
我该怎么做呢?我想到了regex,但我不是他们的拥护者。已尝试:
myStr = myStr .replace(/-([^-]*)$/, "big" + '$1');但它会替换最后一个-,而不是最后一个出现的。所以结果是/private_images/last-edit/image-workbigmed.png
发布于 2012-11-05 17:49:15
您可以使用正则表达式,也可以使用一些字符串方法来明确您的意图。
var idx = myStr.lastIndexOf("-");
var newStr = myStr.substring(0, idx) + "big.png";发布于 2012-11-05 17:52:41
我要承认:我对正则表达式也不太在行。
使用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('-');发布于 2012-11-05 17:59:50
在不使用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'https://stackoverflow.com/questions/13229428
复制相似问题