diff --git a/html/admin/js/master.js b/html/admin/js/master.js index ab9c2ced95..5fbebca376 100644 --- a/html/admin/js/master.js +++ b/html/admin/js/master.js @@ -1877,34 +1877,18 @@ function getTypedValue (value) { // fallback: value is a string value = value + ''; - if (value.substr(0, 1) == '"' && value.substr(-1) == '"' ) { - // remove quotes - value = value.substr(1, value.length - 2); - - var replacements = { 'b' : '\b', 'f' : '\f', 'n' : '\n', 'r' : '\r', 't' : '\t', '\\' : '\\', '"' : '"' }; - var sanitised = ""; - var escaped = false; - for (var i = 0; i < value.length; ++i) { - var c = value.charAt(i); - if (escaped) { - escaped = false; - if (replacements[c] != '') { - sanitised += replacements[c]; - } - else { - // invalid escape sequence - } - } - else { - if (c === '\\') { - escaped = true; - } - else { - sanitised += c; - } - } + if (value.substr(0, 1) == '"') { + if (value.substr(-1) != '"') { + alert("You have entered an invalid string value. Please review and adjust it."); + throw "error"; + } + try { + value = JSON.parse(value); + } + catch (e) { + alert("You have entered an invalid string value. Please review and adjust it."); + throw e; } - value = sanitised; } return value; }