26. april 2005 - 14:46Der er
16 kommentarer og 1 løsning
Tjek efter lang streg, hvis der ikke sår "link" uden om
Hey.
Jeg har en funktion som tjekker om der er et ord på over 25 tegn. Er der det siger den "ikke så lange ord" men hvis der står
[url=]
og
[/Link]
omkring orden, så skal den ikke gøre noget.
p.s. Det ser sådan her ud i praksis.
[url=]http://www.et eller andet lort![Link]Den nice side[/Link]
Her er min funktion:
var txt = document.post.besked.value.split(" "); for (i=0; i<txt.length;i++){ if (txt[i].length > 25) { // ordet er over 25 tegn langt alert("Ikke sådanne lange ord - tror du at du er på universitetet? Max 25 tegn i samme ord!"); return false; } }
måske noget brug af substring? var txt = document.post.besked.value.split(" "); for (i=0; i<txt.length;i++){ var size = txt[i].length if (size>25 && txt[i].substring(0,5)!="[url=]" && txt[i].substring(size-7,size-1)!="[/Link]") { // ordet er over 25 tegn langt alert("Ikke sådanne lange ord - tror du at du er på universitetet? Max 25 tegn i samme ord!"); return false; } }
Jeg er lidt i tvivl om jeg har talt rigtigt med hensyn til hvor mange karakterer den skal hive ud af substring...men bortset fra det så burde den sammenligning vist virke :o)
Du tjekker altså på hvert ord...jeg læste bare helt forkert sorry :o) Du kan jo så bare tjekke om txt[i] = "[url=]".. hvis den er det så løbe forbi indtil du finder "[/Link]" --- var txt = document.post.besked.value.split(" "); var spring_over = false for (i=0; i<txt.length;i++){ if (txt[i] == "[url=]"){ spring_over = true; } if (txt[i].length > 25 && !spring_over) { // ordet er over 25 tegn langt alert("Ikke sådanne lange ord - tror du at du er på universitetet? Max 25 tegn i samme ord!"); return false; } if (txt[i] == "[/Link]"){ spring_over = false; } }
hehe ja som jeg siger i utal af spørgsmål så må jeg til at lære de regulære udtryk Fordelen er at de er utrolig kompakte Ulempen er at de er utrolig kompakte Så det jeg forsøger at sige er at for dem som føler sig på hjemmebane i regulære udtryk skal bruge dem...dem som ikke gør..der føles det måske uoverskueligt når man engang i fremtiden skal ind og rette sin kode til..og ikke lige kan huske hvad det betød
test() er bare den regexp funktion jeg bruger.. I første linie fjerner jeg alt mellem [url=] og [/link]...her bruger jeg en string funktion der hedder replace, og giver et regulært udtryk med som første parameter.
I anden linie tester jeg om den resterende streng har nogle ord der er længere end 25 karakterer... så .test( værdi ) er bare en regexp funktion.
var txt = document.post.besked.value.split(" "); var spring_over = false for (i=0; i<txt.length;i++){ if (txt[i] == "[url=]"){ spring_over = true; } if (txt[i].length > 25 && !spring_over) { // ordet er over 25 tegn langt alert("Ikke sådanne lange ord - tror du at du er på universitetet? Max 25 tegn i samme ord!"); return false; } if (txt[i] == "[/Link]"){ spring_over = false; } }
Det virkede ikke.. den sagde bare; ikke så lange ord
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.