anoniem Geplaatst: 28 december 2002 Delen Geplaatst: 28 december 2002 Voor het controleren of een variabele tekst invoer scheldwoorden bevat heb ik de volgende code gemaakt: [code:1:73ae4b9874]<% Tekst = LCASE(Tekst) WC001 = InStr(Tekst,"kut") WC002 = InStr(Tekst,"sex") WC003 = InStr(Tekst,"neuken") WC004 = InStr(Tekst,"geil") WC005 = InStr(Tekst,"pijpen") IF WC001 <> 0 OR WC002 <> 0 OR WC003 <> 0 OR WC004 <> 0 OR WC005 <> 0 THEN RESPONSE.WRITE("Verkeerde tekst") ELSE RESPONSE.WRITE("Mooi zo") END IF %>[/code:1:73ae4b9874] Ik vind deze manier nogal omslachtig, zeker als ik 100 woorden wil gaan gebruiken. Is er geen kortere mogelijkheid? Quote Link naar reactie
anoniem Geplaatst: 29 december 2002 Auteur Delen Geplaatst: 29 december 2002 Ja, opslaan in een database. Dan zou ik de controle op die scheldwoorden wel iets anders doen. Ik zou een booleaanse variabele gebruiken die standaard op False staat. Wordt er een scheldwoord gevonden, dan wordt ie meteen op True gezet, en wordt de controle afgebroken. Waarom? Er is tenslotte een scheldwoord gevonden, en of er nou nog twee of tien achterstaan maakt niet meer uit. Die tekst is gewoon ongeldig. Vervolgens doe je iets als dit: If ScheldwoordGevonden Then 'doe iets Else 'Doe iets anders End if Of: If ScheldwoordGevonden = True Then 'doe iets Else 'Doe iets anders End if De eerste is iets korter, maar qua werking zijn ze volkomen hetzelfde Quote Link naar reactie
anoniem Geplaatst: 29 december 2002 Auteur Delen Geplaatst: 29 december 2002 Een array kan ook, en dan matchen. t. Quote Link naar reactie
anoniem Geplaatst: 29 december 2002 Auteur Delen Geplaatst: 29 december 2002 [quote:ac54d21053="teacher"]Een array kan ook, en dan matchen. t.[/quote:ac54d21053]my thoughts exactly. Bijvoorbeeld zoiets. [code:1:ac54d21053] function CheckForWords(sInput, a_sWords) dim bResult, i bResult = false i = lbound(a_sWords) while not bResult and i < ubound(a_sWords) if instr(sInput, a_sWords(i)) then bResult = true end if i = i + 1 wend CheckForWords = bResult end function dim a_sWords, sText a_sWords = array("kut", "sex", "neuken", "geil", "pijpen") sText = "dit is een tekst zonder schuttingtaal" if CheckForWords(sText, a_sWords) = false then response.write "wie zoet is krijgt lekkers" else response.write "wie stout is de roe" end if [/code:1:ac54d21053] De functie kan je dan ook nog voor andere doeleinden gebruiken en evt. kan je de array in een (configuratie-)include file zetten. Quote Link naar reactie
anoniem Geplaatst: 31 december 2002 Auteur Delen Geplaatst: 31 december 2002 Thanx, deze is inderdaad veel makkelijker uit te breiden met nieuwe schuttingwoorden. Nog een tip: zet wel eerst de stringTekst in LowerCase, anders glippen schuttingwoorden met Gemengde Hoofdletters en Kleine Letters er doorheen. Quote Link naar reactie
anoniem Geplaatst: 31 december 2002 Auteur Delen Geplaatst: 31 december 2002 Tcoh weer een vraagje: Het is nogal onhandig om alle schuttingwoorden in de .asp file te zetten. Kan ik niet een schuttingwoorden.txt file maken, 1 woord per regel en dan de waardes uit deze file ophalen? Hoe zou ik zoiets moeten doen? Quote Link naar reactie
anoniem Geplaatst: 1 januari 2003 Auteur Delen Geplaatst: 1 januari 2003 Da's inderdaad ook een oplossing. [url=http://www.devguru.com/Technologies/vbscript/quickref/textstream_readline.html]Hier[/url] is een voorbeeld. Quote Link naar reactie
Aanbevolen berichten
Om een reactie te plaatsen, moet je eerst inloggen