0

正規表現でjavascriptを使用して文字を配列に分割したい

foo=foobar=&foobar1=foobar2=

の中へ

フー、フーバー=、フーバー1、フーバー2=

明確でなくて申し訳ありませんが、シナリオをもう一度説明させてください。最初に「&」で分割し、後で後処理したいと思います。

str=foo=foobar=&foobar1=foobar2=
var inputvars=str.split("&")
for(i=0;i<inputvars.length;i++){
   var param = inputvars[i].split("=");
   console.log(param);
}

戻り値

[foo,foobar]
[]
[foobar1=foobar2]
[]

.split("=") を使用しようとしましたが、foobar= は foobar として分割されました。

本質的にそうであってほしい

[foo,foobar=]
[foobar1,foobar2=]

javascript を使用して最初に発生した = のみを分割する方法はありますか?

4

2 に答える 2

1

マルヴォーリオから、私は以下の結論に達しました

var str = 'foo=foobar=&foobar1=foobar2=';
var inputvars = str.split("&");
var pattern =  /^([^=]*)=(.*)/;
for (counter=0; counter<inputvars.length; counter++){

     var param = pattern.exec(inputvars[counter]);         
    console.log(param)
}

と結果(これは私が意図したものです)

[foo,foobar=]
[foobar1,foobar2=]

正規表現乾杯の@malvolioヒントに感謝します

于 2012-07-10T02:54:37.650 に答える
1
/^([^=]*)=(.*)/.exec('foo=foobar=&foobar1=foobar2=')

または、より簡単に記述できますが、新しい「遅延」演算子を使用します。

/(.*?)=(.*)/.exec('foo=foobar=&foobar1=foobar2=')
于 2012-07-10T01:32:45.097 に答える