javascript split

Я могу использовать разделение JavaScript, чтобы поместить разделенный запятыми список элементов в массиве:

var mystring = "a,b,c,d,e";
var myarray = mystring.split(",");

То, что я имею в виду, немного сложнее. У меня есть строка, разделенная запятыми:

"mystring_109_all,mystring_110_mine,mystring_125_all"

Как мне разбить эту строку на массив

7
задан Felix Kling 23 August 2010 в 14:08
поделиться

5 ответов

Высказывание предположения, учитывая, что ваша спецификация не завершена:

var mystring = "mystring_109_all,mystring_110_mine,mystring_125_all";
var myarray = mystring.split(",");
for (var i = 0; i < myarray.length; i++) {
  myarray[i] = myarray[i].split("_");
}
1
ответ дан 6 December 2019 в 13:59
поделиться

То же самое, но цикл

var myCommaStrings = myString.split(','); 
var myUnderscoreStrings = []; 
for (var i=0;i<myCommaStrings.length;i++) 
  myUnderscoreStrings[myUnderscoreStrings.length] = myCommaStrings[i].split('_');
2
ответ дан 6 December 2019 в 13:59
поделиться

Вы можете предоставить регулярное выражение для split () , поэтому для разделения по запятой или подчеркиванию используйте следующее:

var mystring = "mystring_109_all,mystring_110_mine,mystring_125_all";
var myarray  = mystring.split(/[,_]/);

Если вам нужно что-то большее dynamic, вы можете попробовать что-то вроде «Искать без замены» , метод использования функции replace () для анализа сложной строки. Например,

mystring.replace(/(?:^|,)([^_]+)_([^_]+)_([^_]+)(?:,|$)/g,
  function ($0, first, second, third) {
    // In this closure, `first` would be "mystring",
    // `second` would be the following number,
    // `third` would be "all" or "mine"
});
11
ответ дан 6 December 2019 в 13:59
поделиться

Если вы хотите разделить запятыми, а затем подчеркиваниями, вам придется перебирать список:

var split1 = theString.split(',');
var split2 = [];
for (var i = 0; i < split1.length; ++i)
  split2.push(split1[i].split('_'));

Если вы хотите разделить запятыми или подчеркиваниями , вы можете разделить с помощью регулярного выражения, но иногда это приводит к ошибкам. Вот страница, на которой можно прочитать об этих проблемах: http://blog.stevenlevithan.com/archives/cross-browser-split

1
ответ дан 6 December 2019 в 13:59
поделиться

Ммм, точно так же ваш исходный пример:

var mystring = "mystring_109_all,mystring_110_mine,mystring_125_all";
var myarray = mystring.split(",");
0
ответ дан 6 December 2019 в 13:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: