美元符号替换方法中的问题

时间:2019-10-24 23:15:32

标签: node.js

在我的代码中,我从JSON文件中读取了一个变量。变量是一个$符号。

它看起来像:

  "jsonTest":{
    "doJson":"true",
    "steps":[
      {
        "path": "$",
        "compare": "test"
      }
    ]
  }

否,我无法通过JSON路径读取此变量并执行console.log

console.log(entry.path);

结果是预期的美元

现在我将其添加到字符串中:

addJsonTests += '   .expect(await getJSONInfo(\''+ entry.path +'\')).eql(\''+ entry.compare +'\',\'JSON Wertvergleich fehlgeschlagen\', {timeout: 40000}) \n';

我在console.log中返回的文本是:

.expect(等待getJSONInfo('$'))。eql('test','JSON Wertvergleich fehlgeschlagen',{timeout:40000})

因此,这里的$仍然存在。 现在,我用占位符替换此文本,然后将其写回到物理文件中。现在,物理文件如下所示:

        await t 
   .expect(await getJSONInfo('

    });)).eql('test','JSON Wertvergleich fehlgeschlagen', {timeout: 40000}) 

$符号消失了。我认为它将在替换功能中丢失。看起来像:

tempData = tempData.replace('%%JSONTest%%',addJsonTests);

此行之后,字符串已损坏。知道为什么$符号会发生这种情况吗?

1 个答案:

答案 0 :(得分:0)

好的,这是特殊模式问题。要在replace方法中获得$,需要在输入字符串中获得$$。

看过: JavaScript replace() method dollar signs