Как я могу создать оператор SQL, который одинаково хорошо работает с MySQL и Sqlite3?

Я поклонник метода Джона Ресига «Поиск и не заменяю» для этого типа:

var str = 'foo=bar, baz=quux',
    arr = [],
    res = '{';

str.replace(/([^\s,=]+)=([^,]+)(?=,|$)/g, function ($0, key, value) { 
    arr.push('"' + key + '":"' + value + '"');
});

res += arr.join(",") + "}";

alert(res);

Рабочий пример: http://jsfiddle.net/cm6MT/ .

Делает вещи намного проще без необходимости поддержки JSON. Конечно, так же легко использовать одно и то же регулярное выражение с exec() или match().

Упс, я думал, что вы хотите преобразовать строку JSON, а не объект. В этом случае вам нужно немного изменить код:

var str = 'foo=bar, baz=quux',
    res = {};

str.replace(/([^\s,=]+)=([^,]+)(?=,|$)/g, function ($0, key, value) { 
    res[key] = value;
});
console.log(res.foo);
//-> "bar"

Рабочий пример 2: http://jsfiddle.net/cm6MT/1/

0
задан vy32 18 March 2019 в 21:22
поделиться