In NodeJS, I am getting tags comma seperated, an in my model, split them and save to DB.
var getTags = function (tags) { return tags.join(',') }
var setTags = function (tags) { return tags.split(',') }
I want to use it to save multilingual values of variables. Let's say:
I want to get Name: [:es]Sopa[:en]Soup and split it to become:
"Name" : { "es" : "Sopa", "en" : "Soup" }
How can I do that? Is there a better way to do it? Regex is the solution?
RegExp is suitable for your case. Here's some code snippet.
function parse_value(value) {
var hash = {};
var values= value.split(/,/);
for (var i = 0; i < values.length; i++) {
var pair = values[i].split(/:/);
hash[pair[0]] = pair[1];
}
return hash;
}
function parse_data(data) {
if (/^(\w+):\s*(.*)$/.test(data)) {
var name = RegExp.$1;
var value = RegExp.$2;
var hash = parse_value(value);
var output = {};
output[name] = hash;
return output;
}
else {
return {};
}
}
var data = "Name: es:Sopa,en:soup";
console.log(parse_data(data)); //=> { Name: { es: 'Sopa', en: 'Soup' } }