[英]How to escape a double quotes, inside a double quotes, inside a single quotes in PHP/Javascript?
[英]How to escape all the double quotes inside an object
我有很多 HTML 标签,它们在我的代码中被硬编码为字符串。 我想将它们移动到一个单独的模块中,以便我可以将它们用作变量。
当我使用 JSON.parse(HTMLTags) 解析对象时,出现错误
JSON 中的意外标记 x
我知道那是因为双引号,我知道我可以使用反斜杠转义它们。 但这太多了,因为它们有很多标签。 还有其他方法吗?
export const HTMLTags = `{
"h1s": {
"greating1": "<h1 id="ms1" class="ms">ABC</h1>",
"greating2": "<h1 id="ms2" class="ms">XYZ</h1>",
.
.
.
.
.
"greatingx": "<h1 id="msX" class="ms">QWE</h1>"
}
}`;
问题在于您的属性的引号。 源字符串本身无效:
const HTMLTags = `{ "h1s": { "greating1": "<h1 id='ms1' class='ms'>ABC</h1>", "greating2": "<h1 id='ms2' class='ms'>XYZ</h1>", "greatingx": "<h1 id='msX' class='ms'>QWE</h1>" } }`; console.log(JSON.parse(HTMLTags));
您也可以通过正则表达式解析它:
const HTMLTags = `{ "h1s": { "greating1": "<h1 id="ms1" class="ms">ABC</h1>", "greating2": "<h1 id="ms2" class="ms">XYZ</h1>", "greatingx": "<h1 id="msX" class="ms">QWE</h1>" } }`; const replaced = HTMLTags.replace(/(?<==)["']?((?:.(?!["']?\\\\s+(?:\\S+)=|[>"']))+.)["']?/g, str => str.replace(/"/gi, `'`) ); console.log(replaced); console.log(JSON.parse(replaced));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.