JS текст в массив - PullRequest
       33

JS текст в массив

1 голос
/ 01 января 2011

У меня есть этот текст:

2/92/20
3/32/32
4/62/6
5/22/28
6/60/61
7/33/32
8/34/31
9/31/19
10/19/19
11/34/39
12/32/32
14/19/25
15/45/37
16/32/32
17/84/36
18/72/33

И мне нужно, чтобы он был похож на:

// 2/92/20
chars[0][0]=2;
chars[0][1]=92;
chars[0][2]=20;

Как я могу это сделать?PS Разделение должно быть в:

$.ajax({   
    type:     "POST",
    url:      "char_info2.php",   
    dataType: "html",  
    success:  function(data) 
              {
                  //here
              }
});

Ответы [ 3 ]

3 голосов
/ 01 января 2011

Если у вас есть одна строка с переносами строк, вы можете использовать split:

var chars = str.split("\n");
for(var i = chars.length; i--; ) {
    chars[i] = chars[i].split('/');
}

DEMO

Если вы хотите, чтобы они были целыми числами, вам пришлось бы повторять их снова.

Но я согласен с комментариями, отправка их в виде JSON имеет гораздо больше смысла!

2 голосов
/ 01 января 2011

Вы можете использовать разделение или регулярное выражение:

var your_text = "2/92/20\n" +
"3/32/32\n" +
// ... etc ...

// Split Version    
var line_by_line = your_text.split("\n");
var final_array = [];
for (var i=0; i < line_by_line.length; i++) {
    final_array.push(line_by_line[i].split("/"));
}

// Regular Expression Version
var splitter = /^(\d+)\/(\d+)\/(\d+)$/gi;
var final_array = [];
your_text.replace(splitter, function(matched_string, match1, match2, match3) {
    if (match1) { // Assumes 0 is not a valid 1st number
        final_array.push([match1, match2, match3]);
    }
});
0 голосов
/ 01 января 2011

Вы можете разделить на новую строку и косую черту

http://www.w3schools.com/jsref/jsref_split.asp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...