这是我的代码:
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
答案 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("-"));
答案 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它不会......