使用正则表达式删除连续逗号
Remove consecutive commas with regex
我使用
str.replace(/(^,)|(,$)/g, '')
以删除前导逗号和尾随逗号。
如何扩展它以便同时删除两个连续的逗号?
那么,some text,,more text,
应该成为some text,more text
?
一种方法是链接
str.replace(/(^,)|(,$)/g, '').replace(/,,/g, ',')
但随后,some text,,,,more text,
将变得some text,,more text
而不是some text,more text
.
由于您似乎正在使用str
作为数组的源,因此您可以将所有.replace
调用替换为:
var str = ",some text,,,,more text,";
var resultArray = str.split(',') // Just split the string.
.filter(function(item){ // Then filter out empty items
return item !== '';
});
console.log(resultArray)
无需担心前导、尾随或双逗号。
删除前导逗号和尾随逗号,然后将多个连续逗号替换为单个逗号
str.replace(/^,|,$|(,)+/g, '$1');
,+
将匹配一个或多个逗号,g
-global 标志来替换它的所有匹配项。
var str = ',some text,,more text,';
str = str.replace(/^,|,$|(,)+/g, '$1');
console.log(str);
您可以添加一个替代分支并将其与捕获组括起来,然后使用替换回调方法,您可以在其中分析匹配组并相应地执行替换:
var s = ',some text,,,,more text,';
var res = s.replace(/^,|,$|(,+)/g, function(m,g1) {
return g1 ? ',' : '';
});
console.log(res);
要使用逗号进行拆分并在生成的数组中没有空条目,请使用一个简单的
console.log(',some text,,,,more text,'.split(',').filter(Boolean));
你可以用另一个逗号添加一个积极的展望。
var str = ',some text,,more text,';
str = str.replace(/^,|,$|,(?=,)/g, '')
console.log(str);
一个替换只像:",some text,,,,more text,".replace(/(^,)|(,$)|,(?=,)/g, '');
[编辑]
请注意,lookbacks 在 javascript 中不起作用。 所以你只能像这样使用前瞻。
相关文章:
- 使用php或javascript从facebook相册URL中删除多余的部分
- RegEx删除空属性?例如,如果(class=“”||class=“”)移除;否则就下课
- 如何删除多行HTML排列中的空白
- 如何从rails中的代码中删除新行( )
- 删除对HTML元素的拖动
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 按顺序添加和删除类
- iframe正在添加标签,需要删除它们
- 如何在HTML输入字段中添加不可删除的后缀
- Lodash:从数组中删除连续的重复项
- Regex从空格分隔的字符串中删除连续重复项
- 删除连续重复的单词javascript
- 删除JS字符串中连续的竖条
- 使用正则表达式删除连续逗号
- 连续删除数组项目(游戏障碍)
- JavaScript Regex删除特定的连续重复字符
- D3.js删除两个元素匹配属性时,连续单击
- 使用Jquery连续删除和更新动态创建的表行id
- 如何在javascript中删除带有两个管道字符的连续管道
- 如何从数组中删除重复项,同时保留非连续的重复项