29

値を文字列に分割しようとしています。たとえば、文字列があります。

var example = "X Y\nX1 Y1\nX2 Y2"

スペースで区切りたい\nので、そのようなものを取得したい:

var 1 = X
var 2 = Y
var 3 = X1
var 4 = Y1

そして、値の後にX私が持っていることを確認することは可能Yですか? つまり、XYは緯度と経度なので、両方の値が必要です。

4

4 に答える 4

54

改行をスペースに置き換えてから、スペースで分割できます (またはその逆)。

example.replace( /\n/g, " " ).split( " " )

デモ: http://jsfiddle.net/fzYe7/

最初に文字列を検証する必要がある場合は、最初に改行で分割し、結果をループして、同時に文字列を分割する正規表現で各文字列を検証する方が簡単な場合があります。

var example = "X Y\nX1 Y1\nX2 Y2";
var coordinates = example.split( "\n" );
var results = [];

for( var i = 0; i < coordinates.length; ++i ) {
    var check = coordinates[ i ].match( /(X.*) (Y.*)/ ); 

    if( !check ) {
        throw new Error( "Invalid coordinates: " + coordinates[ i ] );
    }

    results.push( check[ 1 ] );
    results.push( check[ 2 ] );    
}

デモ: http://jsfiddle.net/fzYe7/1/

于 2013-06-24T08:56:10.050 に答える
13

var string = "x y\nx1 y1\nx2 y2";
var array = string.match(/[^\s]+/g);

console.log(array); 

jsfiddle: http://jsfiddle.net/fnPR8/

文字列を単語の配列に分割し、それを反復処理する必要があります...

于 2013-06-24T08:50:47.610 に答える
7

正規表現を使用して、文字列リテラルをすべて空白で分割します。

var example = "X Y \nX1 Y1 \nX2 Y2";
var tokens = example.split(/\s+/g);

console.log(tokens.length);
for(var x = 0; x < tokens.length; x++){
   console.log(tokens[x]);
}

作業例 http://jsfiddle.net/GJ4bw/

于 2013-06-24T09:01:35.937 に答える
1

最初に new char で分割して配列に格納してから、spcae で分割できます。

以下は参照リンクを与えるかもしれません

于 2013-06-24T08:49:12.173 に答える