1

文字列をjavascriptオブジェクトに分割する必要がある小さなコードがあります。

結果のオブジェクトは次のようになる必要があります。

var myObject = {
valueOne: value,
valueTwo: value,
arrayOfValues: [values] 
}

変換する必要のある文字列は、2つの異なる形式で提供されます。これらの形式は次のようになります。

1)"MyValues are ('1','2','3')" -これは次のように変換されます:

var myObject = {
valueOne: myValues,
valueTwo: are,
arrayOfValues: [1,2,3] 
}

または2)"MyValue="1"" -これは次のように変換されます:

var myObject = {
valueOne: myValue,
valueTwo: =,
arrayOfValues: [1] 
}

私はこの文字列を次のように分割できることを知っています:

var arr[] = myString.split(" ");

しかし、文字列の構成に基づいて使用するスプリッターを決定し、それをjavascriptオブジェクトに変換することは、私には知られていない世界です。

ご協力いただきありがとうございます。

編集-私は例2で小さな間違いをしました

正しくなるように更新しました。-私が受け取っている文字列は次の形式です。

`"MyValue="1""`

サミーデラックス、あなたの助けに感謝します!これはうまく機能しますが、この2番目の文字列への変更はあなたの例を壊します。(申し訳ありませんが、文字列の形式を間違って入力しました。)

正規表現について学ぶために最善を尽くしています。しかし、この問題を解決するのに十分なことはまだわかりません。

4

1 に答える 1

4

どうぞ(http://jsfiddle.net/VBmb8/):

function parse(str) {
    var match = str.match(/(\w+)\s?([\w=]+)\s?\('(.+)'\)/);

    return {
        valueOne: match[1],
        valueTwo: match[2],
        arrayOfValues: match[3].split("','")
    };
}

*編集後*

http://jsfiddle.net/VBmb8/2/

function parse(str) {
    var match = str.match(/(\w+)\s?([\w=]+)\s?\(?['"](.+)['"]\)?/);

    return {
        valueOne: match[1],
        valueTwo: match[2],
        arrayOfValues: match[3].split("','")
    };
}
于 2012-11-13T16:13:36.847 に答える