You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
436 B
24 lines
436 B
3 years ago
|
'use strict';
|
||
|
|
||
|
function parseString(str) {
|
||
|
try {
|
||
|
if (str[0] === '"') {
|
||
|
return JSON.parse(str);
|
||
|
}
|
||
|
|
||
|
if (str[0] === "'" && str.substr(str.length - 1) === "'") {
|
||
|
return parseString(
|
||
|
str
|
||
|
.replace(/\\.|"/g, (x) => (x === '"' ? '\\"' : x))
|
||
|
.replace(/^'|'$/g, '"')
|
||
|
);
|
||
|
}
|
||
|
|
||
|
return JSON.parse('"' + str + '"');
|
||
|
} catch (e) {
|
||
|
return str;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = parseString;
|