如何替换包含不固定字符的字符串中的某些字符

时间:2018-08-05 04:12:56

标签: javascript regex

我的字符串如下所示

"value":"my"value"

我需要将其转换为

"value":"my\"value"

此字符串中的某些部分是固定的,例如

"value":"

某些部分不固定。所以我想我可以像下面这样对待字符串:

"value":"xx"xxx"

x部分不固定,我需要将字符串替换为

"value":"xx\"xxx"

我认为我应该尝试使用正则表达式,谁能帮助我构建正则表达式?

2 个答案:

答案 0 :(得分:0)

您可以像这样使用正则表达式:

'"value":"xx"xxx"'.replace(/("value":".*)"(.*")/, '$1\\"$2');

答案 1 :(得分:0)

res.log

{   "key": "name", 
    "value" : "value with" quote", 
}

代码段

content = content.replace(/"[^"\\:\n]+"[^"\\:\n]+"/gi, (s) => {
            var substr = s.slice(1, s.length - 1);
            substr = substr.replace("\"", "\\\"");
            return "\"" + substr + "\"";
        }); 

完整样本功能

  var fs = require("fs");

    module.exports =  () => {
            let file = 'res.log';
            let content = fs.readFileSync(file, 'utf8');
            console.log(content);
            content = content.replace(/"[^"\\:\n]+"[^"\\:\n]+"/gi, (s) => {
                var substr = s.slice(1, s.length - 1);
                substr = substr.replace("\"", "\\\"");
                return "\"" + substr + "\"";
            });

            console.log(content);
        };