Det skulle vara lättare att debugga skriptet om du skapade ett minimalt, men komplett, exempel och bifogade.
Hur som helst har jag skapat följande:
<script>
function transform(frm){
var ta1 = frm.elements.information,
val1 = ta1.value,
ta2 = frm.elements.information2,
rslt = "";
// replace all [/table], [/tr] and [/td]
rslt = val1.replace(/\[\/(table|tr|td)]/gi,
function(str, m){
return "</" + m + ">";
}
);
// replace [table|tr|td...]
rslt = rslt.replace(/\[(table|tr|td)((?:\s+[^=]+=\s*\d+)*)]/gi,
function(str, m1, m2){
if (!m2 && /table/i.test(m1)){ m2 = " cellpadding='0' cellspacing='0' border='0' width='100%'" }
return new String("<" + m1 + m2 + ">").replace(/\s*=\s*(\d+)/g, "='$1'");
}
);
ta2.value = rslt;
}
</script>
<form name="form1">
<textarea name="information" cols="70" rows="20">[table cellspacing=100 width=90]
[tr rowspan=4]
[td]hej
[/td]
[td height = 100][/td]
[/tr]
[tr]
[td]hopp[/td]
[/tr]
[/table]
[table]
[tr][td][/td][/tr]
[/table]
</textarea>
<textarea name="information2" cols="70" rows="20"></textarea>
<br>
<input type="button" value="transform" onclick="transform(this.form)">
</form>