我有一个逗号分隔值的字符串:
var x = '1,2,10,11,12';
我需要删除y中的值。
x = remove(x,y);
问:是否有功能已经或者我需要将其转换为数组,删除y然后将其转换回字符串?
答案 0 :(得分:2)
你可以x.replace(y, "")
。有关详细信息,请参阅Mozilla docs。
答案 1 :(得分:1)
假设你删除'y',其中y是索引,请执行以下操作:
x = x.split(',').splice(y,1).join(',');
编辑:
在这种情况下,我会使用正则表达式。如果您希望避免使用正则表达式,可以使用另一种解决方案:
while(x.indexOf(y) >= 0){
x.replace(y+',', '');
}
编辑:为替换添加了一个尾随逗号,这样列表仍然是逗号分隔列表。
答案 2 :(得分:1)
你的意思是这样吗?
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"
答案 3 :(得分:0)
str_replace
analogon:
http://phpjs.org/functions/str_replace:527
所以你可以使用像x=str_replace(y, '', x);
;这样的东西;或者使用regexp自己实现它!
编辑:好的,我认为我弄错了。可能格雷格的答案是正确的: - )
答案 4 :(得分:0)
要检查三件事
y在字符串的末尾,以逗号
开头x.replace(new RegExp('((^|\\b)' + y + ',|,' + y +'$)'),'');