lav wellformed html
Hej,Jeg har et script der skal rydde op i brugerindtastet tekst, hvor det skal sikre at der er lige mange start og end tags i, den tekst brugerne skriver:
function makeWellFormed(id){
var lmnt = document.getElementById(id);
var tags = Array('b','i','u');
var missingTags = Array();
var str = lmnt.value;
for (i=0;i<tags.length;i++) {
count = 0;
search = '<';
pos = str.indexOf(search.concat(tags[i],'>'));
while ( pos != -1 ) {
count++;
pos = str.indexOf(search.concat(tags[i],'>'),pos+1);
}
count = 0;
pos2 = str.indexOf('</'+tags[i]+'>');
while ( pos2 != -1 ) {
count++;
pos2 = str.indexOf('</'+tags[i]+'>',pos2+1);
}
if ((pos-pos2)>0) {
for (j=0;j<(pos-pos2);j++) {
str += '</'+tags[i]+'>';
}
}
}
lmnt.value = str;
}
problemet er bare at den finder ingen tags.
Hvis jeg udfører en normal str.indexOf('<b>'); virker det fint, men denne:
pos = str.indexOf(search.concat(tags[i],'>'));
returnerer -1 hver gang, har også prøvet med:
pos = str.indexOf('<'+tags[i]+'>'));
og
pos = str.indexOf("<"+tags[i]+">"));
nogen der har en god forklaring på det?