0

次のような文字列があります。

var str = "fname=peter lname=pan age=12"

必要なのは、文字列の配列を取得することです。各文字列は、 str変数から fname または lname または age の直後に配置されます。結果は次のようになります['peter', 'pan', '12']

そのタスクを達成するための効果的な解決策を提案してもらえますか (私は長い解決策を手に入れましたが、あなたはそれを見たくないだろうと信じています)。

ありがとうございました!

4

3 に答える 3

2

試す:

var arr = [];
str.replace(/=(\w+)/g, function( a,b ) {
  arr.push( b );
});

console.log( arr ); //=> ["peter", "pan", "12"]

同様の正規表現でそれを行う別の方法を次に示します。

var arr = str.match(/=\w+/g).map(function( m ){
  return m.replace('=','');
});
于 2012-12-18T03:15:05.630 に答える
1

は必要ありませんregex

var str = "fname=peter lname=pan age=12";

str = str.split(' ');
for(var i = 0, length = str.length; i < length; i++) {
    str[i] = str[i].split('=')[1];
}
console.log(str); // ['peter', 'pan', '12']

デモ

于 2012-12-18T03:09:44.890 に答える
0

ループを避けるために、キーをハードコーディングすることも検討できます。

var s   = "fname=peter lname=pan age=12"
var pat = /fname=(\w+)\s*lname=(\w+)\s*age=(\w+)/

r.match(pat)
//returns ["fname=peter lname=pan age=12", "peter", "pan", "12"]
于 2012-12-18T03:41:23.737 に答える