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

时间:2013-06-24 08:44:45

标签: javascript string split

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

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

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

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

是否有可能在价值X后检查Y?我的意思是XY是Lat和Lon所以我需要两个值。

4 个答案:

答案 0 :(得分:47)

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

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/

答案 1 :(得分:10)

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

console.log(array); 

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

它会将你的字符串分解成一个单词数组,然后你必须迭代它......

答案 2 :(得分:4)

使用正则表达式将字符串文字拆分为所有空格。

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/

答案 3 :(得分:1)

你可以先用新的char分割它并将它存储在一个数组中,然后你可以用spcae将它拆分。

以下可能会给出Link