Hej, har ett javascript skall du verkligen först skriva text.indexOf("<C ODE id=", oldstartptr) > 0 och sen text.indexOf("CODE id=", oldstartptr) vill du inte ha mellanslag mellan C o O andra gången också och ev '<' ? Nej, men pellesoft reagerar på just code-taggar för att formatera kod här i forumet. Dock löste jag det så jag postar svaret här ... Varför krångla till det? Som det står nu så måste det ligga en > före code tagen och < efter, skulle det finnas tex ett mellanslag efter taggen kommer du ju inte att hitta den. Man kan använda replace tillsammans med tomsträng Varför inte regexp?search and replace som inte riktigt fungerar...
den ingående texten kan vara i stil med
var text = "<C ODE id=first>Här är första texten </CODE>123 <C ODE id=second>Här är andra texten</CODE>234 och lite mer kod senare.";
Jag får inte till det- texterna här är första texten och här är andra texten skall försvinna, ser ni vad jag gör för fel? Fler följdfel är att om jag kör rutinen 2 gånger så smäller det också. Är väl lite trött efter en lång helg och ögonen sviker mig, eller så håller jag på att bli gammal. Ni unga kanske kan vara lite klokare än mig? ;-)
function cleardynamicdatafrompage() {
// finns editerbart block?
if (document.getElementById("rubrik")) {
var text = document.getElementById("rubrik").innerHTML;
var startptr = 0;
var startptrend = 0;
var oldstartptr = 1;
while (text.indexOf("<C ODE id=", oldstartptr) > 0) {
startptr = text.indexOf("CODE id=", oldstartptr) - 1;
startptrend = text.indexOf(">", startptr) + 1;
var endptr = text.indexOf("</C ODE>", startptr);
// ta bort html-koden som ligger mellan dessa code-block
text = text.substr(0, startptrend) + text.substr(endptr);
var currlength = endptr - startptrend + 1;
oldstartptr = currlength- startptr;
if (oldstartptr < 0) {
return;
}
startptr += 1;
}
// flyttar text till sidan
document.getElementById("rubrik").innerHTML = text;
}
}
Sv: search and replace som inte riktigt fungerar...
Sv:search and replace som inte riktigt fungerar...
function cleardynamicdatafrompage() {
// finns editerbart block? radera då innehållet på detta
// för det kommer fyllas igen från systemet
// En tagg ser ut enligt följande: < CODE id=någotnamn>Text</ CODE>
if (document.getElementById("rubrik")) {
var text = document.getElementById("rubrik").innerHTML;
var startptr = 0;
var startptrend = 0;
var oldstartptr = 0;
var iteration = 0;
while (text.indexOf("< CODE id=", oldstartptr) > 0) {
startptr = text.indexOf("< CODE id=", oldstartptr);
startptrend = text.indexOf(">", startptr) + 1;
var endptr = text.indexOf("</ CODE>", startptr);
var themessage = ">" + text.substr(startptrend, endptr-startptrend) + "<";
// ta bort html-koden som ligger mellan dessa code-block
text = text.replace(themessage,'><');
oldstartptr = endptr - themessage.length;
if (oldstartptr < 0)
return;
startptr += 1;
iteration +=1;
// för att undvika oändlig loop
if(iteration > 5)
return;
}
// flyttar text till sidan
document.getElementById("rubrik").innerHTML = text;
}
}
Observera, jag har lagt ett mellanslag före CODE -ordet på alla ställen ovan som ni får ta bort. Anledningen är att i forumet så nyttjas just den taggen för att formatera kod.
Sv: search and replace som inte riktigt fungerar...
var themessage =text.substr(startptrend, endptr-startptrend);
// ta bort html-koden som ligger mellan dessa code-block
text = text.replace(themessage,'');
Sv:search and replace som inte riktigt fungerar...
Det borde ju räcka med något i stil med
< code > .?* < /code >
och sen ta ut alla matches?