发布
社区首页 >问答首页 >在字符串中只保留一个子字符串。

在字符串中只保留一个子字符串。
EN

Stack Overflow用户
提问于 2017-10-15 18:39:28
回答 2查看 149关注 0票数 0

我正在寻找一个函数,该函数移除字符串中除第一个之外的所有子字符串,因此,例如

代码语言:javascript
代码运行次数:0
复制
function keepFirst(str, substr) { ... }
keepFirst("This $ is some text $.", "$");

应该返回:This $ is some text .

我可以使用split(),然后使用for(){},但是有更好的解决方案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-15 18:51:57

这可能是比较有效的最短代码。它使用破坏分配

代码语言:javascript
代码运行次数:0
复制
function keepFirst(str, substr) {
  const [
    first,
    ...rest
  ] = str.split(substr);

  return first + (rest.length
    ? substr + rest.join("")
    : "");
}
票数 0
EN

Stack Overflow用户

发布于 2017-10-15 18:50:52

该解决方案查找rep第一次出现的索引,并删除它之后的所有rep

代码语言:javascript
代码运行次数:0
复制
console.log(keepFirst("This $ is some text $$ with $ signs.", "$"));
function keepFirst(str, rep) {
  var fInd = str.indexOf(rep);
  var first = str.substring(0, fInd + rep.length);
  var rest = str.substring(fInd + rep.length);
  return first + rest.replace(
    new RegExp(rep.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"), 'g'), 
    '');
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46758642

复制
相关文章

相似问题

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