И так не получается. Вылетает ошибка
too much recursion.
Вот код:
function generate() {
to.value="";
var txt=from.value;
var strings=txt.split(/<br>|\r?\n/);
//var str="";
var p="(?:\\(([^\\)]*)\\)|([^\\s]+))";
var pat=new RegExp(p+"\\|\\|"+p,"g");
var gen_str=[];
function find(str) {
var strings=str;
for(var i=0;i<strings.length;i++) {
var parts=strings[i].match(pat);
if(parts!==null && parts!==undefined) {
var string=strings[i];
var replaces=[];
for(var k=0;k<parts.length;k++) {
var splited=parts[k].split('||');
if(splited!==undefined && splited!==null) {
replaces[k]=splited;
}
}
strings[i]=rep_(strings[i],replaces).join('\n');
} else gen_str.push(strings[i]);
}
return strings;
}
function rep_(str,rep) {
var str=str;
var rep=rep;
var stroki=[];
for(var z=0;z<rep.length;z++) {
var splited=rep[z];
var spl=splited.join('||');
for(var s=0;s<splited.length;s++) {
var this_rep=str.replace(spl,splited[s]);
if(this_rep!==undefined && this_rep.indexOf('||')!==-1) {
this_rep=rep_(this_rep,rep).join('\n');
}
stroki[stroki.length]=this_rep;
}
}
return stroki;
}