разделение javascript - PullRequest
       6

разделение javascript

7 голосов
/ 23 августа 2010

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

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

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

"mystring_109_all,mystring_110_mine,mystring_125_all"

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

Ответы [ 7 ]

11 голосов
/ 23 августа 2010

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

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

Если вы ищете что-то более динамичное, вы можете попробовать что-то вроде «Искать и не заменять» , метод использования функции 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"
});
2 голосов
/ 23 августа 2010

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

var myCommaStrings = myString.split(','); 
var myUnderscoreStrings = []; 
for (var i=0;i<myCommaStrings.length;i++) 
  myUnderscoreStrings[myUnderscoreStrings.length] = myCommaStrings[i].split('_');
1 голос
/ 23 августа 2010

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

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 голос
/ 23 августа 2010

Бросая дикую догадку, если ваша спецификация не завершена:

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("_");
}
0 голосов
/ 08 июня 2017
<!DOCTYPE html>
<html>
<body>

<p>Question is var str = "a,b,c,d,e,f,g"; </p>

<button onclick="myFunction()">Split Button</button>

<p id="demo"></p>
<p id="demo1"></p>

<script>
var text = "";
function myFunction() {
    var str = "a,b,c,d,e,f";
    var arr = str.split(",");

    for(var i = 0; i<arr.length; ++i){ 
        text += arr[i] +" ";
        document.getElementById("demo").innerHTML = text;
    }
    document.getElementById("demo1").innerHTML = arr[0];
}


</script>

</body>
</html>


**Answer**
a b c d e f g

Arr[0]=a
0 голосов
/ 12 ноября 2012

Я создал библиотеку JavaScript только для функций с именем FuncJS , в которой есть функция с именем split(), которая (надеюсь) выполнит задачу.

Прочитайте документы и загрузите FuncJS, это очень легкий файл.

0 голосов
/ 23 августа 2010

Умм, так же, как и в исходном примере:

var mystring = "mystring_109_all,mystring_110_mine,mystring_125_all";
var myarray = mystring.split(",");
...