替换不替换文本

时间:2019-04-23 00:54:57

标签: javascript

我正在尝试检查模型的值是否已更改,以便可以警告用户他/她尚未保存更改。

sort

不幸的是,这始终是事实。当我将鼠标悬停在modelHasChanged(): boolean { let search1 = ",\"_$visited\":true"; let search2 = "\"_$visited\":true"; let strModel = JSON.stringify(this.model); strModel = strModel.replace(/search1/g, ""); strModel = strModel.replace(/search2/g, ""); let o = JSON.stringify(new MyNewObject()); let diff = strModel !== o; return diff; } 上时,我注意到即使我什么也没做,但仍会为某些属性添加strModel。例如:

,"_$visited":true

因此,如果我可以删除那些添加的文本,则可以进行比较。 o = "{"proprty1": null, "property2": {} }" strModel = "{"proprty1": null, "property2": {"_$visited":true} }" 不起作用。我仍在获取原始文本。

Replace

感谢您的帮助

1 个答案:

答案 0 :(得分:1)

您可能需要转义{,},_等字符。

在JavaScript控制台上尝试以下代码。似乎有效。

let temp = "{\"property1\": null. \"property2\": {} }"
let strModel = "{\"property1\": null, \"property2\": {\"_$visited\":true} }"
strModel = strModel.replace(/\{\"\_\$visited\":true\}/, "{}");