0

NodeJS では、タグをカンマ区切りで取得し、モデルで分割して DB に保存しています。

var getTags = 関数 (タグ) { return tags.join(',') }

var setTags = 関数 (タグ) { return tags.split(',') }

変数の多言語値を保存するために使用したいと考えています。まあ言ってみれば:

Name: [:es]Sopa[:en]Soup を取得し、分割して次のようにします。

"Name" : { "es" : "スープ", "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 に答える