Hitta ord i sträng
Hej
Hoppas att någon har en bra lösning på följande.
Har en tabell med ett fält som innehåller "dåliga" ord.
Hur kan jag göra för att loopa igenom ett recordset och se så att inga av dessa orden finns med i en sträng?
Tacksam för svar
// MA
Svara
Sv: Hitta ord i sträng
Du kan använda dig av funktionen InStr("dåligt ord", "sträng att kolla"). Funktionen returnerar sant/falskt.
Har du lite större recordset kommer sökningen att ta tid. Ett tips är då att läsa in recordset till en array för dåliga ord och en array för söksträng, för att till sist jämföra dessa.
Mvh. Roffe
Svara
Sv:Hitta ord i sträng
> Du kan använda dig av funktionen InStr("dåligt ord", "sträng att kolla"). Funktionen returnerar sant/falskt.
Nej, det gör den inte. Den returnerar den första teckenpositionen där strängen hittades, eller noll om den inte hittades.
Svara
Sv:Hitta ord i sträng
Nja, det jag vill är att jag vill förbjuda vissa ord.
Hittar den ett visst ord ska sparandet till databasen inte genomföras alltså inte bara ersättas med ett annat ord.
// MA
Svara
Sv: Hitta ord i sträng
Egentligen borde väl kanske ett reguljärt uttryck vara bättre än inStr... men testa detta:
<code>
'
' Öppna "fulaordtabell"
'
FultOrd = False
Do Until rs.EOF or FultOrd
FultOrd = (inStr(strangen,rs("fulaOrd"),1)<>0) ' (Skiljt från 0 --> Hittat fult ord)
rs.moveNext
Loop
'
' Stäng "fulaordtabell"
'
If FultOrd Then
' Felhantering...
Else
' Uppdatera databas
End If
</code>
Svara
Sv:Hitta ord i sträng
<code>
strangen = request.form("textfält")
</code>
Sen får man köra nån lcase variant om det är så att versalerna/gemerna inte matchar?! För inStr är väl case sensetive antar jag?!
Svara
Sv: Hitta ord i sträng
<b>För inStr är väl case sensetive antar jag?!</b>
Beror på vilken typ av jämförelse man gör... binär eller text...
Svara
Sv: Hitta ord i sträng
Tack för lösningen.
Ändrade dock lite eftersom jag fick ett type mismatch fel.
Från: FultOrd = (inStr(strangen,rs("fulaOrd"),1)<>0) ' (Skiljt från 0 --> Hittat fult ord)
Till: FultOrd = (inStr(1,strangen,rs("fulaOrd"),1)<>0) ' (Skiljt från 0 --> Hittat fult ord)
Svara