假设我有一个字符串,例如
var x = "This is as,] sent,}encee:. Doo} youu: likei} i,:t."
我想知道是否有办法删除]
,}
或:
之前的所有字符?这将导致
"This is as] sent}encee:. Doo} youu: likei} i:t."
我知道我可能会在字符串中循环,但你们知道更简单的方法吗?
编辑:抱歉,如果您只想替换,
,]
或{{1}之前的}
,您会如何解决此问题? }?
答案 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);