Я создаю рекурсивную функцию js, которая в основном анализирует строку.Я не могу выбрать синтаксис строки, поэтому я не могу это изменить.он разделен символом «,», который работает нормально, ожидайте, когда они в скобках, он должен игнорировать внутри скобок, в этом случае он должен разделяться после скобок.Вот пример.
String: "h5, h7, (h5, h7, r3)7, h9"
И его нужно преобразовать в массив строк, который выглядит как
array(
"h5",
"h7",
"(h5, h7, r3)7",
"h9"
);
Я знаю, что, вероятно, есть способ сделать это с помощью регулярных выражений,и у меня есть очень базовые знания регулярных выражений, но я не могу понять это.Если это поможет, вот код js, который у меня есть.
cols = pattern.split(',');// This is where the regex would go.
$.each(cols, function(index, val){
val = $.trim(val);
var type = "";
var ctr = 0;
for(ctr = 0; ctr < val.length && isAlpha(val[ctr]); ctr++)
type += val[ctr];
if(val[0] == "("){
open = 1;
substr = "";
i = 1;
for(; i < val.length && open > 0; i++ ){
if(val[i] == ")"){
open--;
}
else
substr += val[i];
}
var repeater = val.substr(i);
if(isNumeric(repeater)){
for(j=0; j < repeater; j++){
colLen += updateRow(row, substr, false);
}
}
else{
$('#'+row).append('<a href="" >SE</a>');
colLen++;
}
}
// If it doesn't start with a parenthesis, do print it as usual
Очевидно, что кода гораздо больше, но это важная часть.
Извините Если я отформатировал его неправильно, этомой первый вопрос.