qwertyMedlem sedan jan. 2001391 inlägg Varför byter inte denna kod ut de fula orden?
<%
a=Request.Form("textfield")
Application("BadWords") = "Skit Fan Helvete"
strBadWords = Application("BadWords")
arrBadWords = Split(StrBadWords)
For I = LBound(arrBadWords) To UBound(arrBadWords)
strString = Replace (strString,arrBadWords(I),"*****")
Next
%>
<% =a%>
------------------
Qwerty
Den som provar han testar...
PatrikBMedlem sedan mars 20002 836 inlägg ... därför att strString är tom enligt koden du visar. Antar att det du vill kolla är strängen som finns i variabeln a. Byt a mot strString så kommer det nog att funka =P
cya,
PatrikB
------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.
@ndersMedlem sedan juni 200032 969 inlägg vad är strString? när skapar du den? är det inte innehållet i a du ska censurera?
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
@ndersMedlem sedan juni 200032 969 inlägg håll käften, patrikb! ;)
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
PatrikBMedlem sedan mars 20002 836 inlägg he, he ... hann före @nders för en ggns skull :)
------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.
qwertyMedlem sedan jan. 2001391 inlägg Koden ser nu ut så här:
<%
Application("BadWords") = "Skit Fan Helvete"
strString=Request.Form("textfield")
strBadWords = Application("BadWords")
arrBadWords = Split(StrBadWords)
For I = LBound(arrBadWords) To UBound(arrBadWords)
strString = Replace (strString,arrBadWords(I),"*****")
Next
%>
<% =strString%>
...men den funkar fortfarande inte. Skriver ut fan och de andra orden.
Nån som vet felet?
------------------
Qwerty
Den som provar han testar...
PatrikBMedlem sedan mars 20002 836 inlägg Ändra din Application med badword till:
Application("BadWords") = "skit fan helvete"
Sedan ändrar du i själva replacen:
strString = Replace (LCase(strString),arrBadWords(I),"*****")
borde göra susen ...
cya,
PatrikB
------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.
@ndersMedlem sedan juni 200032 969 inlägg du vet om att du gör en case sensitive replace, antar jag.
själva koden fungerar nämligen utmärkt.
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
@ndersMedlem sedan juni 200032 969 inlägg patrikb, vad har jag sagt? ;)
fast problemet med din kod är ju att den resulterande strängen blir lower case.
jag hade nog använt regexp till detta.
------------------
<A HREF="http://cartman.nu" TARGET=_blank>
all your base are belong to us!</A>
[Redigerat av @nders den 09 apr 2001]
PatrikBMedlem sedan mars 20002 836 inlägg jepp, vet att den ändrar allt till LowerCase.
Skulle nog oxå använt mig av RegExp ... fast där är man lite lost så att säga ... men jobbar på den saken =P
Har för mig att Vide har en bra artikel om RegExp
cya,
PatrikB
------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.
PatrikBMedlem sedan mars 20002 836 inlägg ... he, he ... fixade till en liten funktion med regext =P
Function checkBadWord(StringToCheck)
Dim objRegExp, match, matches
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = true
'## -- byt ut fan, skit, helvet under så att det passar
'## dina fula ord. Tänk på att det måste avgränsas med
'## pipe och inget annat ... tror jag =P
objRegExp.Pattern = "(fan|skit|helvete)"
Set matches = objRegExp.Execute(StringToCheck)
For Each match In matches
StringToCheck = Replace(StringToCheck,match,"*****")
Next
Set matches = Nothing
Set objRegExp = Nothing
checkBadWord = StringToCheck
End Function
Med qwertys exempel:
strString = Request.Form("textfield")
Response.Write checkBadWord(strString)
hoppas nu att den funkar ... ;o
cya,
PatrikB
------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.
[Redigerat av PatrikB den 09 apr 2001]
qwertyMedlem sedan jan. 2001391 inlägg Tack alla!
det funkar.
...om jag skulle vilja utveckla funktionen och lägga alla de små fula orden i en databas eller i en textfil. Hur skulle man gå till väga då?
Alltså att man lägger upp alla "bad words" och ett ersättningsord för alla.
tex
helvete - helsefyr
jävlar - järnspikar osv.
...för det måste väl vara ett effektivare sätt eller?
------------------
Qwerty
Den som provar han testar...
PatrikBMedlem sedan mars 20002 836 inlägg visst kan man göra det.
Vet inte hur prestandan blir men funkar gör det:
Function checkBadWord(StringToCheck)
Dim objRegExp, match, matches, arrPattern, I
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = true
arrPattern = Split(Application("BadWords"))
For I = LBound(arrPattern) TO UBound(arrPattern)
objRegExp.Pattern = arrPattern(I)
Set matches = objRegExp.Execute(StringToCheck)
For Each match In matches
StringToCheck = Replace(StringToCheck,match,"*****")
Next
Set matches = Nothing
Next
Set objRegExp = Nothing
checkBadWord = StringToCheck
End Function
Som du ser så splittar jag upp Application objektet till en array och loopar genom arrayen och kör en match för varje värde i arrayen.
cya,
PatrikB
------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.
qwertyMedlem sedan jan. 2001391 inlägg kanske är jag knäpp
...men var placerar jag listan med de "fula orden".
------------------
Qwerty
Den som provar han testar...
qwertyMedlem sedan jan. 2001391 inlägg Det löste sig!
Och för ni som är lika dumma som mig:
Man läser in textfilen i application!
man lär sig något varje dag...
------------------
Qwerty
Den som provar han testar...
PatrikBMedlem sedan mars 20002 836 inlägg ... och den inläsningen bör ske i global.asa's Sub Application_OnStart ...
Annars gör man en global variabel av alla badwords separerade med mellanslag som sedan inkluderas på alla sidor där badword checken ska vara.
cya,
PatrikB
------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.
qwertyMedlem sedan jan. 2001391 inlägg ..men om man bara har badwordchecken på en enda sida kan man väl bara läsa in "ordlistan" där?
Förresten: Ingen som vet var man kan hitta en lista över svordomar och liknande fula ord?
------------------
Qwerty
Den som provar han testar...
qwertyMedlem sedan jan. 2001391 inlägg checka ut detta:
jag har lagt en massa fula ord i en textfil åtskiljda av mellanslag. Allt fukar ända tills man kommer till en svordom som innehåller åäö. Då står det där "jävla"-ordet kvar. Hur ska jag göra för att den ska ersätta även de ord som innehåller ä. Har försök lägga in orden html-formaterade i ordlistan (jävlar), men det hjälpte inte. Tacksam för tips.
------------------
Qwerty
Den som provar han testar...
PatrikBMedlem sedan mars 20002 836 inlägg hur har du sparat texten i filen?
cya,
PatrikB
------------------
Ingenting är omöjligt.
Det omöjliga tar bara något längre tid att genomföra.
[Redigerat av PatrikB den 10 apr 2001]
qwertyMedlem sedan jan. 2001391 inlägg jag har bara skrivit alla ord i en lång rad i en textfil med "skriv text". Helt rent från taggar och annat.
------------------
Qwerty
Den som provar han testar...