JavaScript 字符串替换

JavaScript string replacement

本文关键字:替换 字符串 JavaScript      更新时间:2023-09-26

>我有一个带有逗号分隔值的字符串:

var x = '1,2,10,11,12';

我需要删除 y 中的值。

x = remove(x,y);

问:是否已经有该功能,或者我是否需要将其转换为数组,删除 y,然后将其转换回字符串?

你可以

x.replace(y, "")。有关更多信息,请参阅 Mozilla 文档。

你的意思是这样吗?

var arr = "1,2,1,2,3".split(",");
var arr2 = [];
for(var i = 0; i < arr.length; i++) {
    if(arr[i] != "1") arr2.push(arr[i])
}
arr2.join(","); // "2,2,3"

假设你删除了y是索引的"y",请执行以下操作:

x = x.split(',').splice(y,1).join(',');

编辑:

在这种情况下,我会使用正则表达式。如果您希望避免正则表达式,可以使用另一种解决方案:

while(x.indexOf(y) >= 0){
 x.replace(y+',', '');
}

编辑:在替换中添加了一个尾随逗号,以便列表仍然是逗号分隔的列表。

phpjs.org 中的str_replace类似物:http://phpjs.org/functions/str_replace:527

所以你可以使用类似x=str_replace(y, '', x); ;)或者使用正则表达式自己实现它!

编辑:好吧,我想我弄错了。可能格雷格的答案是正确的:-)

有三件事需要检查

  1. 字符串开头的 y,后跟逗号
  2. y 前面有一个分词符,后跟一个逗号
  3. y 在字符串末尾,前面有一个逗号

    x.replace(new RegExp('((^|''b)' + y + ',|,' + y +'$)'),'');