使用Javascript删除带有通配符的字符串中的值
我试图返回一个逗号分隔的字符串,其中不包含以“non”结尾的项 资料来源:使用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(','))此操作不需要正则表达式。只需在
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;
}