作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个正在发送无效 JSON 字符串的后端。它将垂直制表符转义为\v,这在 JSON 中无效,最终被解析器拒绝。
我正在尝试解决前端 JSON 解码器中的问题:
function fromJson(json) {
if(typeof json === "string") {
var jsonString = json.replace(/\v/g, "\u000B");
return JSON.parse(jsonString)
}
else {
return json
}
}
预期输出:新字符串,其中\v 的所有实例都替换为 unicode 行列表。
实际输出:
JSON.parse: SyntaxError: Unexpected token v in JSON at position...
最佳答案
Javascript 将 \
字符解释为 special characters在正则表达式中。它期望 \
之后的字符具有特殊含义,但 v
不是特殊字符之一。因此出现异常 JSON 中的意外标记 v
。
要解决您的问题,您需要使用另一个 \
转义正则表达式中的 \
字符,例如json.replace(/\\v/g, "\u000B");
关于javascript - 如何对 JSON 字符串使用 string.replace() ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55417524/
我是一名优秀的程序员,十分优秀!