Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

[ASP] scheldwoorden controle

Bigfoot
6 antwoorden
  • 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?
  • 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
  • Een array kan ook, en dan matchen.

    t.
  • [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.
  • 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.
  • 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?

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.