How to check if a string is a valid JSON string in JavaScript without using Try/Catch(如何在不使用 Try/Catch 的情况下检查字符串是否是 JavaScript 中的有效 JSON 字符串)
问题描述
类似:
var jsonString = '{ "Id": 1, "Name": "Coke" }';
//should be true
IsJsonString(jsonString);
//should be false
IsJsonString("foo");
IsJsonString("<div>foo</div>")
解决方案不应包含 try/catch.我们中的一些人打开了中断所有错误",他们不喜欢调试器中断那些无效的 JSON 字符串.
The solution should not contain try/catch. Some of us turn on "break on all errors" and they don't like the debugger breaking on those invalid JSON strings.
推荐答案
先评论.问题是关于不使用 try/catch
.
如果您不介意使用它,请阅读下面的答案.这里我们只是使用一个正则表达式检查一个 JSON
字符串,它在大多数情况下都可以工作,而不是所有情况.
A comment first. The question was about not using try/catch
.
If you do not mind to use it, read the answer below.
Here we just check a JSON
string using a regexp, and it will work in most cases, not all cases.
查看 https://github 中的第 450 行.com/douglascrockford/JSON-js/blob/master/json2.js
有一个用于检查有效 JSON 的正则表达式,例如:
There is a regexp that check for a valid JSON, something like:
if (/^[],:{}s]*$/.test(text.replace(/\["\/bfnrtu]/g, '@').
replace(/"[^"\
]*"|true|false|null|-?d+(?:.d*)?(?:[eE][+-]?d+)?/g, ']').
replace(/(?:^|:|,)(?:s*[)+/g, ''))) {
//the json is ok
}else{
//the json is not ok
}
编辑:新版本的 json2.js 进行了比上面更高级的解析,但仍然基于正则表达式替换(来自 @Mrchief 的评论)
EDIT: The new version of json2.js makes a more advanced parsing than above, but still based on a regexp replace ( from the comment of @Mrchief )
这篇关于如何在不使用 Try/Catch 的情况下检查字符串是否是 JavaScript 中的有效 JSON 字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在不使用 Try/Catch 的情况下检查字符串是否是 JavaScript 中的有效 JSON 字符串
- 我不能使用 json 使用 react 向我的 web api 发出 Post 请求 2022-01-01
- 如何向 ipc 渲染器发送添加回调 2022-01-01
- 为什么悬停在委托事件处理程序中不起作用? 2022-01-01
- 如何显示带有换行符的文本标签? 2022-01-01
- 使用 iframe URL 的 jQuery UI 对话框 2022-01-01
- 是否可以将标志传递给 Gulp 以使其以不同的方式 2022-01-01
- 如何调试 CSS/Javascript 悬停问题 2022-01-01
- 为什么我的页面无法在 Github 上加载? 2022-01-01
- 在不使用循环的情况下查找数字数组中的一项 2022-01-01
- 从原点悬停时触发 translateY() 2022-01-01