0

私は、PHP のかなりの知識を持って jQuery を理解するために取り組んでいます。

私は次のような文字列を持っています:

[donor="company1" web="http://company1.com" amount="5.50"];[donor="company2" web="http://company2.com" amount="40.00"]

私はこの質問から答えられた結果を達成しようとしています。

残念ながら、文字列を他の質問の質問者が最初に始めなければならないようなものに変える方法がわかりません。

var data = [{'donor':'company1', 'web':'http://company1.com', 'amount':5.50}, 
            {'donor':'company2', 'web':'http://company2.com', 'amount':40.00}]

あなたが提供できるどんな助けも素晴らしいでしょう。マップ、連想配列、オブジェクトと関係があると思いますが、取得できません。

よろしくお願いします。

4

1 に答える 1

0

regex replacemnt を使用して、元の文字列を必要な文字列に変換できます。

var s='[donor="company1" web="http://company1.com" amount="5.50"];[donor="company2" web="http://company2.com" amount="40.00"]';
s='[' + s.replace(/\[/g,'{').replace(/\]/g,'}').replace(/=/g,':')
  .replace(/"\s/g,'", ').replace(/{(.+?):/g,'{"$1":')
  .replace(/;/g,',\r\n') + ']';

この変換の結果は、取得したい文字列です。これは、オブジェクトの配列の JSON 表記です。

この JSON 式を評価すると、オブジェクトの配列が取得されます。

これらの行を前のスクリプトの最後に追加すると、JSON で表されるオブジェクトを含む長さ 2 の配列が得られることがわかります。

var t = eval(s);
alert(t.length); // output 2, which is the array length
alert(t[0].donor); // outputs company1, which is the donor of the first object in the array

w3schools try it yourself エディタでこのコードをいじることができます。このコードをコピーして貼り付けます。

<html>
<head>
<script type="text/javascript">
var s='[donor="company1" web="http://company1.com" amount="5.50"];[donor="company2" web="http://company2.com" amount="40.00"]';
s='[' + s.replace(/\[/g,'{').replace(/\]/g,'}').replace(/=/g,':')
  .replace(/"\s/g,'", ').replace(/{(.+?):/g,'{"$1":')
  .replace(/;/g,',\r\n') + ']';
var t = eval(s);
alert("Array length: " + t.length);
alert("1st object donor: " + t[0].donor);
</script>
</head>
<body>


</body>
</html> 
于 2012-04-25T23:14:50.823 に答える