Подтвердить что ты не робот

Разделение строки по пробелу и новая строка в Javascript

Я пытаюсь разбить значения в строке, например, у меня есть строка:

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

и я хочу отделить его пробелами и \n, поэтому я хочу получить что-то вроде этого:

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

И можно ли проверить, что после значения X у меня есть Y? Я имею в виду, что X и Y - Lat и Lon, поэтому мне нужны оба значения.

4b9b3361

Ответ 1

Вы можете заменить новые строки пробелами и затем разбить по пробелам (или наоборот).

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/

Ответ 2

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

console.log(array); 

Ответ 3

Используйте регулярное выражение для разделения литерала строки на все пробелы.

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/

Ответ 4

вы можете сначала разбить его на новый char и сохранить его в массиве, а затем вы можете разбить его на spcae.

следующее может дать ссылку Ссылка