我有一个像
这样的字符串Andrew,Lucy,,David,Tess,
我想删除Lucy之后的,,
以及字符串末尾的逗号,以便我需要的最终结果是
Andrew,Lucy,David,Tess
有没有办法在jQuery中实现这个目标?
答案 0 :(得分:2)
这是一个有效的正则表达式:
/,+(?=,|$)/g
删除多余的逗号,后跟逗号或行尾。如果将此应用于多行,则在结束斜杠后添加m
(多行标记)(否则$
仅匹配文本的最末端而不是每个换行符。)
代码演示
// Add /i at bottom to make the regex it case insensitive
var re = /,+(?=,|$)/g;
var tests = ['Andrew,Lucy,,David,Tess,','Andrew,,,,Lucy,,,David,Tess,,,'].reverse();
var m;
while( t = tests.pop() ) {
document.write('"' + t + '" => <font color="green">' + t.replace(re,'') + '</font><br/>');
}
&#13;
答案 1 :(得分:2)
使用正向前瞻?=
var str = "Andrew,Lucy,,David,Tess,";
str = str.replace(/,(?=,+|$)/g, "");
console.log( str ); // Andrew,Lucy,David,Tess
&#13;
停在逗号
的末尾,
而不是预告?=
,因为它后面跟着:
,+
一个或多个逗号
|
或它位于字符串$
重要强>
当字符串以一个或多个逗号开头时,您很可能需要注意案例,而不是简单地将^,+|
附加到您的正则表达式:
var str = ",,Andrew,Lucy,,David,Tess,,";
str = str.replace(/^,+|,(?=,+|$)/g, "");
console.log( str ); // Andrew,Lucy,David,Tess
&#13;
或分别/^,+|,(?=,+)|,+$/g
答案 2 :(得分:0)
谢谢大家。非常感谢您的努力。
做了这样的事情。 它工作
var your_string = 'Andrew, Lucy,, David, Tess,';
newstr=your_string.replace(',,', ',');
your_string1 = newstr.replace(/[,]$/,'');
首先我删除了双逗号然后我从末尾删除了逗号
答案 3 :(得分:-1)
或者您只需使用.replace()
var str = "Andrew,Lucy,,David,Tess,";
var res = str.replace(",,", ",").replace(/,\s*$/, "");
答案 4 :(得分:-1)
没有正则表达式:
var str = "Andrew,Lucy,,David,Tess,";
var res = str.split(",");
res = res.filter(Boolean);
res = res.join(",");
console.log(res);
&#13;
使用正则表达式和替换函数():
var str = "Andrew,Lucy,,David,Tess,";
var res = str.replace(/,,|,$/g, function(x){
return x == ",," ? ",": "";});
console.log(res);
&#13;