Without json validation | const LIKELY_A_BASIC_FORMAT_RE = /\{\d+\}/;
function likelyUsesABasicFormat(message) {
return !(message.indexOf('{') !== -1) || LIKELY_A_BASIC_FORMAT_RE.test(message);
}
const msg1 = 'A simple message';
const msg2 = 'A simple message with an argument {0}';
const msg3 = 'A simple message with multiple arguments {0} {1}';
const msg4 = 'This test has: {nbKeys, plural, =0{Zero key} =1{One key} other{# keys}}',
'a.json.key': '{"previousMonth":"Previous Month","months":["January","February","March","April","May","June","July"]}';
likelyUsesABasicFormat(msg1);
likelyUsesABasicFormat(msg2);
likelyUsesABasicFormat(msg3);
likelyUsesABasicFormat(msg4);
| ready |
Without json validation Regex | const LIKELY_A_BASIC_FORMAT_RE = /\{\d+\}/;
function isValidJSON(message) {
return /^[\],:{}\s]*$/.test(
message
.replace(/\\["\\/bfnrtu]/g, '@')
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+-]?\d+)?/g, ']')
.replace(/(?:^|:|,)(?:\s*\[)+/g, ''),
);
}
function likelyUsesABasicFormat(message) {
return !(message.indexOf('{') !== -1) || LIKELY_A_BASIC_FORMAT_RE.test(message) || isValidJSON(message);
}
const msg1 = 'A simple message';
const msg2 = 'A simple message with an argument {0}';
const msg3 = 'A simple message with multiple arguments {0} {1}';
const msg4 = 'This test has: {nbKeys, plural, =0{Zero key} =1{One key} other{# keys}}',
'a.json.key': '{"previousMonth":"Previous Month","months":["January","February","March","April","May","June","July"]}';
likelyUsesABasicFormat(msg1);
likelyUsesABasicFormat(msg2);
likelyUsesABasicFormat(msg3);
likelyUsesABasicFormat(msg4);
| ready |
Without json validation JSON parse | const LIKELY_A_BASIC_FORMAT_RE = /\{\d+\}/;
function isValidJSON(message) {
try {
JSON.parse(message);
return true;
} catch (e) {
return false;
}
}
function likelyUsesABasicFormat(message) {
return !(message.indexOf('{') !== -1) || LIKELY_A_BASIC_FORMAT_RE.test(message) || isValidJSON(message);
}
const msg1 = 'A simple message';
const msg2 = 'A simple message with an argument {0}';
const msg3 = 'A simple message with multiple arguments {0} {1}';
const msg4 = 'This test has: {nbKeys, plural, =0{Zero key} =1{One key} other{# keys}}',
'a.json.key': '{"previousMonth":"Previous Month","months":["January","February","March","April","May","June","July"]}';
likelyUsesABasicFormat(msg1);
likelyUsesABasicFormat(msg2);
likelyUsesABasicFormat(msg3);
likelyUsesABasicFormat(msg4);
| ready |