Javascript 从{到}反转大括号,反之亦然
我有一个带有Javascript 从{到}反转大括号,反之亦然,javascript,Javascript,我有一个带有{和}的字符串,我怎样才能把它们全部取下来并反转,这样所有{都变成}和}变成{ 我不能这样做: str = str.replace("}", "{"); str = str.replace("{", "}"); 因为这将使A与B朝向相同的方向,因此它将取代B,这将使它们朝向相同的方向 我试着这样做: str = str.replace(["{", "}"], ["}", "{"]); 但这似乎没有任何作用(甚至没有出错) 那么,我可以做些什么来反转它们呢?您可以使用一个临时字符串
{
和}
的字符串,我怎样才能把它们全部取下来并反转,这样所有{
都变成}
和}
变成{
我不能这样做:
str = str.replace("}", "{");
str = str.replace("{", "}");
因为这将使A与B朝向相同的方向,因此它将取代B,这将使它们朝向相同的方向
我试着这样做:
str = str.replace(["{", "}"], ["}", "{"]);
但这似乎没有任何作用(甚至没有出错)
那么,我可以做些什么来反转它们呢?您可以使用一个临时字符串,该字符串在进行交换时肯定是唯一的:
str = str.replace("}", "TEMP_HOLDER");
str = str.replace("{", "}");
str = str.replace("TEMP_HOLDER", "{");
但是,如果字符串包含临时字符串,并且它也不能替换多个匹配项,则很容易出现错误。我建议使用Erik的。您需要在第一次转换时转换为其他内容,然后在进行其他转换后再转换为所需内容
str = str.replace("{", "_###_");
str = str.replace("}", "{");
str = str.replace("_###_", "}");
当然,“其他内容”必须是字符串中不包含的内容。如果确定字符串中不包含换行符,则可以使用“\r\n”。可以使用带有回调函数的regexp来解决此问题:
str.replace(/\{|\}/g, function(match) {
return match == "}" ? "{" : "}";
});
您可以采用两阶段解决方案:
str = str.replace("}", "~");
str = str.replace("{", ",");
str = str.replace("~", "{");
str = str.replace(",", "}");
这是最好的答案。使用临时字符串容易出现错误。由于使用了“g”修改器,这也会多次替换