JavaScript字符串替换

JavaScript字符串替换,javascript,Javascript,我有一个用逗号分隔的字符串: var x = '1,2,10,11,12'; 我需要删除y中的值 x = remove(x,y); 问:是否已经有了这个函数,或者我需要将其转换为数组,删除y,然后将其转换回字符串?您可以执行x.replace(y,”)。有关详细信息,请参阅。您可以执行x.replace(y,”)。有关更多信息,请参阅phpjs.org上的 因此,您可以使用类似于x=str_替换(y,,,x);)或者使用regexp自己实现它 编辑:好吧,我想我弄错了。也许格雷格的答案是正

我有一个用逗号分隔的字符串:

var x = '1,2,10,11,12';
我需要删除y中的值

x = remove(x,y);

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

您可以执行
x.replace(y,”)
。有关详细信息,请参阅。

您可以执行
x.replace(y,”)
。有关更多信息,请参阅phpjs.org上的

因此,您可以使用类似于
x=str_替换(y,,,x);)或者使用regexp自己实现它


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

str\u replace
analogon(来自phpjs.org):

因此,您可以使用类似于
x=str_替换(y,,,x);)或者使用regexp自己实现它


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

假设您删除了“y”,其中y是索引,请执行以下操作:

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

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

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

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

假设您删除了“y”,其中y是索引,请执行以下操作:

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

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

while(x.indexOf(y) >= 0){
 x.replace(y+',', '');
}
编辑:在替换后添加了一个逗号,这样列表仍然是一个逗号分隔的列表。

您的意思是这样的吗

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"
var arr=“1,2,1,2,3”。拆分(“,”);
var arr2=[];
对于(变量i=0;i你是说像这样吗

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"
var arr=“1,2,1,2,3”。拆分(“,”);
var arr2=[];
对于(变量i=0;i
有三件事需要检查

  • y位于字符串开头,后跟逗号
  • y前面是一个分词,后面是一个逗号
  • y位于字符串末尾,前面有一个逗号

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

  • 有三件事需要检查

  • y位于字符串开头,后跟逗号
  • y前面是一个分词,后面是一个逗号
  • y位于字符串末尾,前面有一个逗号

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


  • 这还不够,但这是一个有趣的起点,也许我不理解这个问题。是否匹配字符串或y中的数值?请记住,对第一个参数使用字符串只会替换该值一次。执行
    String.replace(/value/g,“”)
    将替换它的所有实例。我想如果我在x中放置一个前导逗号和一个尾随逗号,那么我可以执行:x.replace(“,“+y+”,“,”,”)@cf_PhillipSenn,当y位于列表的开头或结尾时,这将不起作用。没有逗号是不行的,因为你可能会删除你不想要的数字。例如,如果y是“7”,你可以把“17”变成“1”。这还不够,但这是一个有趣的起点。也许我不理解这个问题。是否匹配字符串或y中的数值?请记住,对第一个参数使用字符串只会替换该值一次。执行
    String.replace(/value/g,“”)
    将替换它的所有实例。我想如果我在x中放置一个前导逗号和一个尾随逗号,那么我可以执行:x.replace(“,“+y+”,“,”,”)@cf_PhillipSenn,当y位于列表的开头或结尾时,这将不起作用。没有逗号是不行的,因为你可能会删除你不想要的数字。例如,如果y是“7”,你可以将“17”变成“1”。PHP.js会引起我的兴趣、困惑和厌恶,就像一个12岁的孩子在聊天室争论宗教,或者一只蟑螂慢慢地在我的布丁中间走过一样。-推荐PHPjs的1。你不需要那个。它唯一的使用案例是严格的截止日期和有才华的PHP开发人员(他们不懂javascript)。PHP.js让我好奇、困惑和厌恶,就像一个12岁的孩子在聊天室争论宗教,或者一只蟑螂在我的布丁中间慢慢爬过去。-推荐PHPjs。你不需要那个。它唯一的用例是严格的截止日期和有才华的PHP开发人员(他们不懂javascript)。y不是索引。y是一个值。在本例中,它将是客户ID或产品ID。y不是索引。y是一个值。在本例中,它将是客户ID或产品ID。这是非常难看的代码,我无法想象为什么您会使用它作为OP问题的解决方案。为什么您要声明一个匿名字符串,然后拆分它?为什么要使用第二个数组来复制每个负匹配,而不是只删除正匹配?OP有一个字符串,需要删除某些元素,至少我是这么想的。我同意这不是最优雅的解决方案。优雅不,但效率才是真正的问题。这是非常难看的代码,我无法想象你为什么要用它作为OP问题的解决方案。你为什么要声明一个匿名字符串,然后拆分它?为什么要使用第二个数组来复制每个负匹配,而不是只删除正匹配?OP有一个字符串,需要删除某些元素,至少我是这么想的。我同意这并不是最优雅的解决方案。优雅不,但效率才是真正的问题。