如何在javascript中的某些字符之前删除所有逗号

时间:2015-03-10 03:01:45

标签: javascript

假设我有一个字符串,例如

var x = "This is as,] sent,}encee:. Doo} youu: likei} i,:t."

我想知道是否有办法删除]}:之前的所有字符?这将导致

"This is as] sent}encee:. Doo} youu: likei} i:t."

我知道我可能会在字符串中循环,但你们知道更简单的方法吗?

编辑:抱歉,如果您只想替换,]或{{1}之前的},您会如何解决此问题? }?

2 个答案:

答案 0 :(得分:2)

您可以使用javascripts正则表达式替换:

x.replace(/,([\]\}\:])/gi, '$2')

\,将捕获一个字符

([\]\}\:])会捕获下一个字符]:}

gi将使其成为全局搜索且不区分大小写。

var x = "This is as,] sentencee,:. Doo,} youu: likei,} it."
var y = x.replace(/,([\]\}\:])/gi, '$1');
document.write(y);

答案 1 :(得分:1)

正则表达式替换

替换为正则表达式,查找逗号后跟您的特定字符,并将其替换为特殊字符(例如",:" => ":")。

var x = "This is as,] sent,}encee:. Doo} youu: likei} i,:t.";
x = x.replace(/,([\]:}])/g, "$1");

alert(x);

字符串替换

您还可以使用以下字符串替换方法,链接替换,但重要的是要注意全局替换标志("g")在v8 JS引擎中不起作用,如Chrome(我认为Safari) ,所以谨慎使用此方法:

var x = "This is as,] sent,}encee:. Doo} youu: likei} i,:t.";
x = x.replace(',]', ']', "g")
     .replace(',}', '}', "g")
     .replace(',:', ':', "g");

alert(x);