使用Javascript删除带有通配符的字符串中的值

使用Javascript删除带有通配符的字符串中的值,javascript,jquery,regex,Javascript,Jquery,Regex,我试图返回一个逗号分隔的字符串,其中不包含以“non”结尾的项 资料来源: id = '2345,45678,3333non,489,2333non'; 预期结果: id = '2345,45678,489'; 我正在使用我在这里找到的代码: var removeValue=函数(列表、值、分隔符){ 分隔符=分隔符| |“,”; var值=list.split(分隔符); 对于(变量i=0;i!x.endsWith('non')).join(','))此操作不需要正则表达式。只需在

我试图返回一个逗号分隔的字符串,其中不包含以“non”结尾的项

资料来源:

id = '2345,45678,3333non,489,2333non';  
预期结果:

id = '2345,45678,489'; 
我正在使用我在这里找到的代码:

var removeValue=函数(列表、值、分隔符){
分隔符=分隔符| |“,”;
var值=list.split(分隔符);
对于(变量i=0;i

有没有办法让行
(values[i]==value)
使用通配符

使用
/[^,]*non,|,[^,]*non/g

id='2345456783333non,4892333non';
console.log(
id.replace(/[^,]*non,|,[^,]*non/g,”)

)
使用
/[^,]*non,|,[^,]*non/g

id='2345456783333non,4892333non';
console.log(
id.replace(/[^,]*non,|,[^,]*non/g,”)

)
这不需要正则表达式。只需在
上进行拆分,并过滤数组中所有未以
结尾的元素

var id='2345456783333non,4892333non'

console.log(id.split(',').filter(x=>!x.endsWith('non')).join(','))
此操作不需要正则表达式。只需在
上进行拆分,并过滤数组中所有未以
结尾的元素

var id='2345456783333non,4892333non'

console.log(id.split(',').filter(x=>!x.endsWith('non')).join(','))
您也可以在不使用
regex的情况下获得该结果,如下所示:

varid='2345456783333non,4892333non';
var resArray=id.split(',').filter((项)=>item.indexOf('non')==-1);
var resString=resArray.toString();

console.log(resString)
您也可以在不使用
regex的情况下获得该结果,如下所示:

varid='2345456783333non,4892333non';
var resArray=id.split(',').filter((项)=>item.indexOf('non')==-1);
var resString=resArray.toString();

console.log(resString)@OP注意,IE中不支持箭头函数,Edge中半支持箭头函数@请注意,IE中不支持箭头函数,Edge中半支持箭头函数。我喜欢id的单行。替换(/[^,]*non,|,[^,]*non/g,”)既然你让我这么容易,我该如何更改行以只获取non。我不太使用正则表达式。您的正则表达式可能会变短一点
,?\d+non
有点笨重,但是
id.replace(/([^,]*non,[^,]*non),[^,]*,[^,]*)/g,$1')
应该可以@user1314159@revo如果字符串以模式开头,例如,
123non,123234
,则会在字符串的开头留下一个逗号。太棒了-逗号开头不是问题,谢谢你喜欢id的单行。替换(/[^,]*non,|,[^,]*non/g')既然你让我这么容易,我该如何更改该行以只获取non。我不太使用正则表达式。您的正则表达式可能会变短一点
,?\d+non
有点笨重,但是
id.replace(/([^,]*non,[^,]*non),[^,]*,[^,]*)/g,$1')
应该可以@user1314159@revo如果字符串以模式开头(例如,
123non,123234
),则会在字符串开头留下一个逗号。太棒了-逗号开头没有问题,谢谢
var removeValue = function(list, value, separator) {
  separator = separator || ",";
  var values = list.split(separator);
  for (var i = 0; i < values.length; i++) {
    if (values[i] == value) {
      values.splice(i, 1);
      return values.join(separator);
    }
  }
  return list;
}