在 JavaScript 中删除最后一个逗号之前的文本

Posted

技术标签:

【中文标题】在 JavaScript 中删除最后一个逗号之前的文本【英文标题】:Remove text before last comma in JavaScript 【发布时间】:2012-04-30 04:34:36 【问题描述】:

假设我有一个字符串“cats,dogs,bun,bunnies”,其中 bunnies 是通过自动完成附加的。我当然希望 'bun' 被兔子取代。

那么如何删除最后一个逗号之前的文本但保留其他所有内容?所以字符串会是“cats,dogs,bunnies”

编辑

基本上,如果倒数第二项包含在最后一项的第一部分中,则应将其删除。

谢谢! 法尔科

【问题讨论】:

您要始终删除列表中的倒数第二项,还是仅当倒数第二项包含在列表的第一部分中时最后一项? 如果倒数第二项包含在最后一项的第一部分中,基本上是的。它是自动完成的。 ...这根本不能回答问题。是哪个? 【参考方案1】:

你的意思是:


var str = "cats,dogs,bun,bunnies";
var arr = str.split(",");   
arr.splice((arr.length  - 2) ,1);
arr.join(",");
console.log(arr);

【讨论】:

【参考方案2】:

这是一种方法。你也可以使用正则表达式。

sList = "cats,dogs,bun,bunnies".split(",");
num = sList.length;
if (sList[num-1].search(sList[num-2]) != -1) 
  sList.splice(-2, 1);

required = sList.join(',');

【讨论】:

【参考方案3】:

不确定这是否可行,但有两种方法:

// Array splice
text = text.split(',')
text.splice(-2, 1)
text = text.join(',')

// regular expression
text.replace(/\w+,([^,]+)$/, '$1')

https://developer.mozilla.org/en/javascript/Reference/Global_Objects/Array/splice

【讨论】:

【参考方案4】:
  var s="cats,dogs,bunnies"
  var str = s.split(',').reverse();

  str.splice(1,1);
  s=str.join(',')

【讨论】:

以上是关于在 JavaScript 中删除最后一个逗号之前的文本的主要内容,如果未能解决你的问题,请参考以下文章

使用javascript删除字符串中最后出现的逗号

jQuery从数组中删除最后一个逗号

在包括冒号之前删除所有内容并将逗号替换为换行符

javascript 以逗号截取字符

拼接字符串时,去掉最后一个多余的逗号

如何删除最后出现的逗号,逗号本身可能不是SQL中String的最后一个字符