【发布时间】:2012-03-05 03:52:20
【问题描述】:
我正在创建一个基本上解析字符串的递归 js 函数。我不能选择字符串的语法,所以我不能改变它。它由一个“,”分隔,它工作正常,当它们在括号中时,它需要忽略括号内部,在这种情况下它需要在括号之后拆分。这是一个例子。
字符串:“h5,h7,(h5,h7,r3)7,h9”而且它需要转换成一个字符串数组,看起来像
大批( "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
显然还有很多代码,但这是相关部分。
对不起,如果我格式错误,这是我的第一个问题。
【问题讨论】:
-
如果你想练习正则表达式,我建议你检查gskinner.com/RegExr :)
标签: javascript jquery regex split