在我的代码中,我从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);
此行之后,字符串已损坏。知道为什么$符号会发生这种情况吗?
答案 0 :(得分:0)
好的,这是特殊模式问题。要在replace方法中获得$,需要在输入字符串中获得$$。