0

私は次のテキストを持っています、

              Name:Jon
               Age:25
              Gender:Male

これを分割して次の結果を得る方法、

              Jon
              25
               Male

これを使えば、

           var results = file.split(":");

results[0]=名前、results[1]=JonAge、results[2]=25Gender を取得し、与えると、

            var results = file.split("\n");

結果[0]=名前:ジョン、結果[1]=年齢:25、...

しかし、上記を取得できませんでした。コロンまたは改行を同時にチェックするにはどうすればよいですか?

4

3 に答える 3

4

最初に改行で分割し、次にコロンで分割する必要があります。

file.split('\n').map(function(line){return line.split(':')[1];})

これは明らかにループで実現できますが、このmap関数を使用するとうまくいきます。

正規表現を使用することもできます。

file.match(/[^:]+$/gm)

最後に、配列で機能する分割関数を作成することで、配列の機能を拡張できます。

Array.prototype.split = function(s) { 
    return this.map( function(x) { return.x.split(s); } ); 
}

次に、分割を連鎖させると、配列の配列が得られます。

var results = file.split('\n').split(':');
console.log( 'Name: ' + results[0][1] );
console.log( 'Age: ' + results[1][1] );
console.log( 'Gender: ' + results[2][1] );

どの方法を選択するかは、どの程度「安全」になりたいかによって大きく異なります。つまり、フィールド名または値の不正な形式の入力またはコロンについて心配していますか....

于 2013-09-27T22:27:56.673 に答える
1

できません。for ループを使用します。

var r = file.split("\n");
var results = [];
for (var i = 0; i < r.length; i++) {
    results[i] = r[i].split(":")[1];
}
于 2013-09-27T22:25:03.137 に答える
0

これは 2 つのステップで実現できます。最初に、テキストを改行で分割します。

lines = str.split( '\n' )

次に、各行を繰り返し、それぞれをコロンで分割します。

final = {};
for ( pair in lines ){
  var split = lines[ pair ].split( ':' );

  var name = split[ 0 ].trim(); //cleaning out any whitespacve
  var value = split[ 1 ].trim(); //cleaning out any whitespacve

  final[ name ] = value;
}

final今でしょ:

Object {Name: "Jon", Age: "25", Gender: "Male"}
于 2013-09-27T22:35:57.250 に答える