0

いくつかの括弧の内容で文字列を一致/置換する必要があります。したがって、次のようなものです。

var str = '_(foo, bar)'

次のようなオブジェクトになります。

var obj = {foo: 'bar'}

この regexp で試してみました/[a-z]+/gが、成功しませんでした!

私が必要とするのは、次のような関数です:

var obj = {};
'_(foo, bar)'.replace(/[a-z]+/g, function (match, key, value) {
    obj[key] = value || key;
});

私の正規表現スキルは本当に制限されており、これを達成する方法がわかりませんよね?

4

2 に答える 2

3
var obj = {};
'_(foo)'.replace(/\(([a-z\d]+),*\s*([a-z\d]+)*\)/g, function (match, key, value){
    obj[key] = value || key;
});    
console.log(obj);

出力

{ foo: 'foo' }

ここで正規表現の説明を見ることができますhttp://regex101.com/r/jG1sY6

于 2013-10-22T09:58:51.033 に答える