JQuery Regex想要从字符串中删除逗号

时间:2016-08-20 06:35:49

标签: jquery regex

我有一个像

这样的字符串
Andrew,Lucy,,David,Tess,

我想删除Lucy之后的,,以及字符串末尾的逗号,以便我需要的最终结果是

Andrew,Lucy,David,Tess

有没有办法在jQuery中实现这个目标?

5 个答案:

答案 0 :(得分:2)

这是一个有效的正则表达式:

/,+(?=,|$)/g

Online Demo

删除多余的逗号,后跟逗号或行尾。如果将此应用于多行,则在结束斜杠后添加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;
&#13;
&#13;

答案 1 :(得分:2)

使用正向前瞻?=

&#13;
&#13;
var str = "Andrew,Lucy,,David,Tess,";
str = str.replace(/,(?=,+|$)/g, "");
console.log( str ); // Andrew,Lucy,David,Tess
&#13;
&#13;
&#13;

  

停在逗号,而不是预告?= ,因为它后面跟着:
  ,+一个或多个逗号
  |或它位于字符串$

的末尾

重要

当字符串以一个或多个逗号开头时,您很可能需要注意案例,而不是简单地将^,+|附加到您的正则表达式:

&#13;
&#13;
var str = ",,Andrew,Lucy,,David,Tess,,";
str = str.replace(/^,+|,(?=,+|$)/g, "");
console.log( str ); // Andrew,Lucy,David,Tess
&#13;
&#13;
&#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*$/, ""); 

Working Demo

答案 4 :(得分:-1)

没有正则表达式:

&#13;
&#13;
var str = "Andrew,Lucy,,David,Tess,";
var res = str.split(",");
res = res.filter(Boolean);
res = res.join(",");
console.log(res);
&#13;
&#13;
&#13;

使用正则表达式和替换函数():

&#13;
&#13;
var str = "Andrew,Lucy,,David,Tess,";
var res = str.replace(/,,|,$/g, function(x){
  return x == ",," ? ",": "";});
console.log(res);
&#13;
&#13;
&#13;