我有一个这样的字符串:
这是你自己的待办事项清单,不要忘了! ;),N任务状态,0。xcv活动,1。xcv活动(4)
我需要找到此字符串中的所有,
(逗号),并用空格替换它们,除非在,
之前有y
个字母。
为了做到这一点,我创造了一个定期的表达:
let str = 'This your own todos list on the day, don\'t forgot it! ;), N Task Status, 0. xcv active, 1. xcv active (4)';
str.match(/,/g);
但它在字符串中找到了所有,
而没有过滤y,
的情况。
我也试过这些解决方案:
str.match(/[^y],/g);
str.match(/[^],/g);
但是在替换中插入这些正则表达式时,他们会使用前面的字母修饰逗号
let str = 'This your own todos list on the day, don\'t forgot it! ;), N Task Status, 0. xcv active, 1. xcv active (4)';
alert(str.replace(/([^y]),/g, '\n'));
答案 0 :(得分:1)
使用str.match(/[^y],/g)
实际上会返回所有逗号后面带有字符的逗号。
如果重点是那些逗号,那么实际上不需要其他修改 - str.match(/[^y],/g).length
会在y
之后返回一些逗号。
如果要删除除y
之外的任何字符后出现的逗号,那么你就是这样做的:
let str = 'This your own todos list on the day, don\'t forgot it! ;), N Task Status, 0. xcv active, 1. xcv active (4)';
// count the commas
console.log(str.match(/[^y],/g).length);
// remove commas from the string
console.log(str.replace(/([^y]),/g,"$1 "));