0

在 NodeJS 中,我在我的模型中获取逗号分隔的标签,将它们拆分并保存到 DB。

var getTags = function (tags) { return tags.join(',') }

var setTags = function (tags) { return tags.split(',') }

我想用它来保存变量的多语言值。比方说:

我想获取 Name: [:es]Sopa[:en]Soup 并将其拆分为:

“名称”:{“es”:“Sopa”,“en”:“汤”}

我怎样才能做到这一点?有更好的方法吗?正则表达式是解决方案吗?

4

1 回答 1

0

RegExp 适合您的情况。这是一些代码片段。

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' } }
于 2013-05-30T10:43:26.020 回答