使用正则表达式将(,,text,,,4,text,3,,)转换为(text,4,text3)
Turning (,,,text,,4,text,3,,) into (text,4,text,3) using regular expression
有人能建议regEx使用javascript String.replacement()方法将(,,,text,,4,text,3,,)
更改为(text,4,text,3)
吗?
这里有一个基于正则表达式的解决方案,它可以在单个replace
调用中完成:
var re = /,+(?=,)|,+(?='))|('(),+/g;
var result = input.replace(re, '$1');
RegEx演示
我建议您在不使用正则表达式的情况下制作,如果您制作一个没有空项的数组,效果会更好:
Array.prototype.clean = function(deleteValue) {
for (var i = 0; i < this.length; i++) {
if (this[i] == deleteValue) {
this.splice(i, 1);
i--;
}
}
return this;
};
var arr = ",,,text,,4,text,3,,".split(","); //convert string into array
arr.clean(""); // clean all empty items
console.log(arr); // returns ["text","4","text","3"]
这很可能无法使用单个替换来完成,因为Javascript正则表达式相对有限,但您可以尝试:
var str = "(,,,text,,4,text,3,,)"
str.replace(/^'(,+/g, "(")
.replace(/,+')$/, ")")
.replace(/,+/, ",");
// → "(text,4,text,3)"
请注意,开头、结尾(去掉逗号)和中间(用单个逗号替换多个逗号)有三种不同的情况。
您可以用3个替换来完成:
- 将所有"多个逗号"更改为单个逗号
- 删除第一个括号后的第一个逗号
- 删除最后一个括号前的最后一个逗号
var str = '(,,,text,,4,text,3,,)';
str = str
.replace(/,+/g, ',')
.replace(/^'(,/, '(')
.replace(/,')$/, ')');
alert(str);
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- 如何在Javascript中将JSon对象转换为数组
- 使用JS将数组转换为json对象
- 如何将输入(type=text)从html表单传递到javascript函数
- 如何使用json将对象列表从java转换为javascript
- 偶尔结结巴巴地说“;堆叠的”;translate()上的转换(v4.0.0-alpha40)
- 为什么在单独的函数中应用时转换会闪烁/断断续续(D3)
- 在Javascript中转换对象数组
- 将数字转换为一定数量的硬币
- 将纯文本URL转换为可单击链接
- 当图像转换为本地存储的DataURL时,EXIF被删除
- 如何使用js将SNAPSHOT内部版本号转换为3位数的整数
- Inout Text字段在转换为字符串并输出时生成一个空行
- Kendo UI-将Text()括起来的文本转换为<span>编码HTML
- 使用正则表达式将(,,text,,,4,text,3,,)转换为(text,4,text3)
- Sublime text find并替换为regex,将jquery live()事件转换为on()
- 在Javascript中将Text NodeType转换为Element
- 将Text输入转换为javascript函数的实际参数
- 我需要将元素的text-color转换为background-color,有什么建议吗?
- 如何手动将Application/json转换为text/html