【问题标题】:Split and join in JavaScript?拆分和加入 JavaScript?
【发布时间】:2014-07-18 08:41:46
【问题描述】:

我有一个字符串“SHELF-2-1-1-2-1”,我需要从该字符串中删除“2”并希望输出为“SHELF-1-1-2-1”

我试过了:

var str = "SHELF-2-1-1-2-1";
var res = str.split("-");

如何加入数组以获得“SHELF-1-1-2-1”?

【问题讨论】:

  • 您要删除字符2,还是第7 位的任何字符?被删除的总是一个字符,还是有时不止一个字符?
  • 为什么不只是str.replace("-2","")
  • 请阅读how to ask a good question。这个问题在被澄清之前吸引了很多答案,即使是现在也有多种方法可以解释所问的内容和未指定的要求。

标签: javascript replace split


【解决方案1】:

这可行:

var str = "SHELF-2-1-1".split('-2').join('');

【讨论】:

  • 哇,这是一个聪明的答案!我试图根据 user3271040 在他的问题中提出的代码来解决它,但你的规避了这一点并且非常简单。我会记住那种方法的!!
  • 如果在这种情况下,“SHELF-2-1-1-2”它给出的是“SHELF-1-1”,而它应该是“SHELF-1-1-2”
【解决方案2】:
var str = "SHELF-2-1-1";
var res = str.split("-");
res.pop(res.indexOf('2'));
var newStr = res.join('-');

这也应该适用于您更新的问题,因为它只会从字符串中删除第一个 2

【讨论】:

    【解决方案3】:

    听起来你想做一个替换...试试:

    var res = str.replace('-2', '');

    【讨论】:

    • 这是 IMO 最干净的答案
    • 它将“SHELF-2-10-20”变成了可能不需要的“SHELF-100”。并且有可能只替换第一个实例。这个问题很不清楚。
    • 不,它会将"SHELF-2-10-20" 变成"SHELF-10-20"。默认。 replace 仅替换第一次出现。要执行全局替换,第一个参数需要是应用了g 标志的正则表达式。
    猜你喜欢
    • 2012-10-03
    • 2015-03-11
    • 1970-01-01
    • 2011-07-26
    • 2019-04-06
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多