/
extensions.js
22 lines (21 loc) · 1.09 KB
/
extensions.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// # ## ## # # # ###
// # # # # # ## # # # #
// # # # # ## # ### ### # # # # ### ### ### ##
// # # # # # ## # # # # # ### # # # # ## # ##
// # # # # # # # ## ## # # # # # # ## # ## ##
// ## ## ## # # ## ## # # # # # # ### ##
// #
JSON.tryParse = (str) => {
return new Promise((resolve, reject) => {
var initialStr = str;
if (!str || str.length === 0) {
reject();
}
str = str.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, '');
if ((/^[\],:{}\s]*$/).test(str)) {
resolve(JSON.parse(initialStr));
} else {
reject("JSON was not valid.");
}
});
};