字符串替换双引号括号括起来[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串替换双引号括号括起来[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
如何将所有Double引号替换为打开和关闭大括号。
let str = "This" is my "new" key "string";
我试过这个正则表达式
str.replace(/"/,'{').replace(/"/,'}')
但我最终得到了这个:
{This} is my "new" key "string"
这里只有第一个字正在改变,但我想改变所有的话。我希望结果如下:
{This} is my {new} key {string}
提前致谢。
答案
尝试使用全局正则表达式并使用捕获组:
let str = '"This" is my "new" key "string"';
str = str.replace(/"([^"]*)"/g, '{$1}');
console.log(str);
另一答案
您的代码目前仅适用于每个{
和}
的第一次出现。修复此问题的最简单方法是循环,而"
中仍有str
:
let str = '"This" is my "new" key "string"';
while (str.includes('"')) {
str = str.replace(/"/,'{').replace(/"/,'}');
}
console.log(str);
另一答案
试试这样吧
str.replace(/"(.*?)"/g, "{$1}")
我们需要使用g-gobal flag
。这里捕获双引号“”之间的字符串,然后用匹配的字符串花括号替换
另一答案
一个非常简单的方法是将字符串作为一个数组进行迭代,每次遇到字符时,"
都会被{
或}
重复替换。
let str = '"This" is my "new" key "string"';
let strArray = str.split("");
let open = true;
for (let i = 0; i < strArray.length; ++i) {
if (strArray[i] == '"') {
if (open === true) {
strArray[i] = '{';
}
else {
strArray[i] = '}';
}
open = (open == true) ? false : true;
}
}
str = strArray.join("");
console.log(str)
以上是关于字符串替换双引号括号括起来[重复]的主要内容,如果未能解决你的问题,请参考以下文章