Støv, fibre og metalliske partikler kan påvirke både uptime, levetid og driftssikkerhed. Derfor arbejder flere datacentre systematisk med contamination control.
.match returnerer null, hvis der ikke er et match, så her kan du se ideen i at bruge den:
<script language="javascript" type="text/javascript"> function showNum(fld){ var reg = /eksperten/gi; var num = fld.value.match(reg).length; if(num)alert(num); } </script>
<script language="javascript" type="text/javascript"> function showNum(fld){ var reg = /eksperten/gi; var num = fld.value.match(reg); if(num)alert(num.length); } </script>
Hvis jeg så sætter det ind i et script, for at tælle antal og , siger den at, er -1 [/b] er -1 er 0. Burde [b] ikke give 0?
function test1(){ var doc = document.answer.message var BStart = //gi; var BEnd = //gi; var numBStart = doc.value.match(BStart); var numBEnd = doc.value.match(BEnd); if((numBStart) && (numBEnd)) { alert(numBStart.length - numBEnd.length); } else { alert(0); } }
function test1(){ var doc = document.answer.message var BStart = /\[b\]/gi; var BEnd = /\[\/b\]/gi; var numBStart = doc.value.match(BStart); var numBEnd = doc.value.match(BEnd); if(numBStart==numBEnd) { alert('ok'); } else { alert('not ok'); } }
Når man så prøver at få den til at gøre det med 3 forskellige, vil den ikke.
function test1(){ var doc = document.answer.message
var BStart = /\[b\]/gi; var BEnd = /\[\/b\]/gi; var numBStart = doc.value.match(BStart); var numBEnd = doc.value.match(BEnd); if(numBStart&&numBEnd&&numBStart.length==numBEnd.length) var CodeB = 1
var UStart = /\[u\]/gi; var UEnd = /\[\/u\]/gi; var numUStart = doc.value.match(UStart); var numUEnd = doc.value.match(UEnd); if(numUStart&&numUEnd&&numUStart.length==numUEnd.length) var CodeU = 1
var IStart = /\[i\]/gi; var IEnd = /\[\/i\]/gi; var numIStart = doc.value.match(IStart); var numIEnd = .value.match(IEnd); if(numIStart&&numIEnd&&numIStart.length==numIEnd.length) var CodeI = 1
Ovenstående kode vil returnere false medmindre alle tre findes i et givet tekstarea, men det er vel valgfrit, om man vil skrive nogen af dem, så måske:
function test1(){ var codeB = CodeU = CodeI = true; var doc = document.answer.message;
var BStart = /\[b\]/gi; var BEnd = /\[\/b\]/gi; var numBStart = doc.value.match(BStart); var numBEnd = doc.value.match(BEnd); if(numBStart&&numBEnd&&numBStart.length!=numBEnd.length)CodeB = false;
var UStart = /\[u\]/gi; var UEnd = /\[\/u\]/gi; var numUStart = doc.value.match(UStart); var numUEnd = doc.value.match(UEnd); if(numUStart&&numUEnd&&numUStart.length!=numUEnd.length)CodeU = false;
var IStart = /\[i\]/gi; var IEnd = /\[\/i\]/gi; var numIStart = doc.value.match(IStart); var numIEnd = .value.match(IEnd); if(numIStart&&numIEnd&&numIStart.length!=numIEnd.length)CodeI = false;
Jeg vil gerne sørge for at alle [x] også bliver lukket igen med [/x], det er nok ikke muligt(?) at sørge for at der står [x]tekst[/x] og ikke [/x]tekst[x] eller at der ikke står [x]tekst[x]tekst[/x]tekst[/x] osv. Jeg har en anelse om at det har noget med RegExp at gøre? Jeg har bare ikke så meget forstand på lige netop det her :(
Jeg har bare på fornemmelsen, at det jeg har fået lavet nu lidt er noget juks og at jeg skulle have forklaret det fra starten istedet for at tro jeg havde den rigtige løsning :(
Tror lige jeg prøver at beskrive det helt, så der ikke opstår misforståelser :)
Man kan skrive: for <b></b> for <i></i> for <u></u>
""
for <table cellpadding=""0"" cellspacing=""0"" border=""0""><tr><td style=""border: 1px #000000 solid;""></td></tr></table> [image=mitsite.dk/mig.jpg] for <img src=""mitsite.dk/mig.jpg""> [URL]mitsite.dk[/URL] for <a href=""mitsite.dk"" target=""_blank"">mitesite.dk</a> for <font face=""arial""></font> for <font color=""#000000""></font>
-- jeg har nu en, som fungerer med de simple et-bogstavs-tags, jeg må lige tænke lidt mere over de tags som har flere bogstaver og det, som godt må være åbent !-)
-- den forudsætter godt nok, at der ikke bruges [] i teksten, men det er vel en rimelig begrænsning ?-)
<script language="javascript" type="text/javascript"> function testTags(fld){ var oT = new Array(); var numoT = 0; var st = fld.value.split('['); if(st.length>1){ for(i=1;st.length>i;i++){ alert(st[i]+" "+numoT+" "+oT) if(st[i].indexOf(']')==2){ if(numoT==0)return false; if("/"+oT[numoT]==st[i].substring(0,2)) numoT--; else return false; }else if(st[i].indexOf(']')==1){ oT[++numoT] = st[i].substring(0,1); }else return false; } } return true; } </script>
Den checker altid for, om der findes et ] efter et [, fordi det er en nødvendig forudsætning for at komme videre, men der checkes ikke for om der står et b] et eller andet sted ...
-- og den kigger både efter at der kommer lige mange [x] som [/x], samt at der evt. står og ikke ...
Det er sq fint nok... Hvor finder jeg en liste med simple javascript kommandoer, jeg synes ik at der er så mange på w3schools? Fx at finde tegnet til venstre i en tekst..
-- jeg kunne forøvrigt finde ud af at sikre at de samme tags ikke godkendes inde i hinanden, men det betyder altså også at man ikke kan sætte tables inde i tables !-)
<script language="javascript" type="text/javascript"> function testTags(fld){ var oT = new Array(); var numoT = 0, slut = slut1 = slut2 = 0; var st = fld.value.split('['); if(st.length>1){ for(i=1;st.length>i;i++){ alert(st[i]+" "+numoT+" "+oT); if(st[i].indexOf('/')==0&&st[i].indexOf(']')>1){ if(numoT==0)return false; if(st[i].indexOf("/"+oT[numoT])==0) numoT--; else return false; }else if(st[i].indexOf(']')>0){ if(st[i].indexOf('image')!=0){ slut1 = st[i].indexOf(']'); slut2 = st[i].indexOf('='); slut = (slut1>slut2&&slut2!=-1)?slut2:slut1; oT[++numoT] = st[i].substring(0,slut); if(oT[numoT-1]==oT[numoT])return false; } }else return false; } } if(numoT==0)return true; } </script>
-- og den bedste reference jeg kender (men også ekstrem omfattende !-) er:
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.