首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >是否替换最后7个字符的字符串?

是否替换最后7个字符的字符串?
EN

Stack Overflow用户
提问于 2012-11-05 17:43:35
回答 8查看 181关注 0票数 0

这是我的代码:

代码语言:javascript
运行
复制
​var myStr = "/private_images/last-edit/image-work-med.png";​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

我想用big.png替换最后7个字符(med.png)。或者,正如您所看到的,是-拆分后的最后一个事件。

我该怎么做呢?我想到了regex,但我不是他们的拥护者。已尝试:

代码语言:javascript
运行
复制
myStr = myStr .replace(/-([^-]*)$/, "big" + '$1');

但它会替换最后一个-,而不是最后一个出现的。所以结果是/private_images/last-edit/image-workbigmed.png

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-11-05 17:49:15

您可以使用正则表达式,也可以使用一些字符串方法来明确您的意图。

代码语言:javascript
运行
复制
var idx = myStr.lastIndexOf("-");
var newStr = myStr.substring(0, idx) + "big.png";
票数 1
EN

Stack Overflow用户

发布于 2012-11-05 17:52:41

我要承认:我对正则表达式也不太在行。

使用split拆分怎么样?不太简洁,但更容易理解。

代码语言:javascript
运行
复制
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('-');
票数 2
EN

Stack Overflow用户

发布于 2012-11-05 17:59:50

在不使用RegExp的情况下,可以使用:

代码语言:javascript
运行
复制
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"

更具“功能性”:

代码语言:javascript
运行
复制
var nwstr = function(s){
              return s.replace(s.substr(-7),'');}(
               '/private_images/last-edit/image-work-med.png'
           )+'big.png'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13229428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档