按空格分割字符串和Javascript中的新行

lol*_*l2x 25 javascript string split

我试图在字符串中拆分值,例如我有一个字符串:

var example = "X Y\nX1 Y1\nX2 Y2"
Run Code Online (Sandbox Code Playgroud)

我想用空格分隔它,\n所以我希望得到类似的东西:

var 1 = X
var 2 = Y
var 3 = X1
var 4 = Y1
Run Code Online (Sandbox Code Playgroud)

并且有可能在X我有价值之后检查Y吗?我的意思是XY是纬度和经度,所以我需要两个值.

JJJ*_*JJJ 47

您可以用空格替换换行符,然后按空格分割(反之亦然).

example.replace( /\n/g, " " ).split( " " )
Run Code Online (Sandbox Code Playgroud)

演示: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 ] );    
}
Run Code Online (Sandbox Code Playgroud)

演示:http://jsfiddle.net/fzYe7/1/


gma*_*iar 10

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

console.log(array); 
Run Code Online (Sandbox Code Playgroud)

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

它会将你的字符串分成几个单词然后你必须迭代它...


Kev*_*sox 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]);
}
Run Code Online (Sandbox Code Playgroud)

工作示例 http://jsfiddle.net/GJ4bw/