【问题标题】:split string by space and new line in Javascript [closed]在Javascript中按空格和换行符分割字符串[关闭]
【发布时间】:2013-06-24 08:44:45
【问题描述】:

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

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

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

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

是否可以检查在值X 之后我有一个Y?我的意思是 XY 是纬度和经度,所以我需要这两个值。

【问题讨论】:

标签: javascript string split


【解决方案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/

【讨论】:

  • 如果我想破解值 X Y 是数字?我正在尝试这样的事情:example 但它不起作用:/ 我有 void 0
  • 和 (jsfiddle.net/fzYe7/7) 如果我想将每个数值保存到 vars 中(在循环 ofc 中,因为我不知道我会得到多少坐标)是否可以将第一个数字保存到 X* 和第二进入 Y* ? * 是一个数字
【解决方案2】:

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

console.log(array); 

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

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

【讨论】:

    【解决方案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】:

      你可以先用new char分割,然后存入数组,再用spcae分割。

      以下可以参考Link

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-19
        • 1970-01-01
        • 2013-10-11
        • 2014-10-04
        • 2014-12-13
        • 2010-09-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多