difficile, ci sto provano... potresti pubblicare lo script?
usi InStr?
lo script che stavo testando intercetta il contenuto, lo cancella ma non so come far bloccare il tutto...
esempio: 
http://www.caprioli.info/fitness/filtro.asp
		 
		
	 
Il Form è in una pagina html e punta alla pagina di controllo in asp nella quale (dopo il tag di chiusura) ho inserito queste funzioni:
<%
Function CheckMessaggio(str)
  Dim testomessaggio
  testomessaggio = instr(str, "@") or instr(str, "www") or instr(str, "WWW") or instr(str, "http") or instr(str, "HTTP") or instr(str, "PAPERINO") or instr(str, "TOPOLINO") or instr(str, "Paperino") or instr(str, "Topolino")
  if (testomessaggio > 0) and (testomessaggio < len(str)) or (testomessaggio > len(str)) then
    CheckMessaggio = false
    exit function
  end if
  CheckMessaggio = true
End Function
Function CheckEmail(str)
  
  Dim i, j, first, last, char
  i = instr(str, "@")
  if (i > 0) and (i < len(str)) then
    first = left(str, i - 1)
    last = mid(str, i+1, len(str))
  else
    CheckEmail = false
    exit function
  end if
  if (len(first) = 0) then
    CheckEmail = false
    exit function
  end if
  i = instrrev(last, ".")
  if len(mid(last,1,i)) = 0 then
    CheckEmail = false
    exit function
  end if
  j = len(last) - i
  if (j <= 1) or (j >= 15) then
    CheckEmail = false
    exit function
  end if
  i = 0
  do until (i = len(first))
    i = i + 1
    char = mid(first, i, 1)
    if (asc(char) <> 45) and (asc(char) <> 46) and _
      (asc(char) < 48 or asc(char) > 57) and _
      (asc(char) < 65 or asc(char) > 90) and _
      (asc(char) <> 95) and _
      (asc(char) < 97 or asc(char) > 122) then
      CheckEmail = false
      exit function
    end if
  loop
  i = 0
  do until i = len(last)
    i = i + 1
    char = mid(last, i, 1)
    if (asc(char) <> 45) and (asc(char) <> 46) and _
      (asc(char) < 48 or asc(char) > 57) and _
      (asc(char) < 65 or asc(char) > 90) and _
      (asc(char) <> 95) and _
      (asc(char) < 97 or asc(char) > 122) then
      CheckEmail = false
      exit function
    end if
  loop
  CheckEmail = true
End Function
 %>
Nel body della stessa pagina di controllo ho inserito invece questo codice (ho omesso alcune righe riguardanti solo le impostazioni per l'invio dell'email):
    <%
    
    On error resume next
    Dim campo
    strHost = "localhost"
        
    campo = ""
    
    camponome = trim(Request.Form("nome"))
    campoemail = trim(Request.Form("email"))
    campomessaggio = trim(Request.Form("messaggio"))
    campomessaggio = Replace(campomessaggio, vbcrlf, "<br />")
    
    if camponome = "" then
        campo = campo & ". . .  indicare un nome o uno pseudonimo<br />" & ""
    end if
    
    if campoemail = "" then
        campo = campo & ". . .  indicare un indirizzo Email valido<br />" & ""
    else
        'controllo la correttezza base della formalit dell'indirizzo e-mail    
        if CheckEmail(campoemail) = false then
            campo = campo & ". . . rivedere il formato dell'indirizzo Email, non sembra corretto<br />" & ""
        end if
    end if
    
    if campomessaggio = "" then
        campo = campo & ". . . scrivere un testo nel campo del messaggio<br />" & ""
    else
        if CheckMessaggio(campomessaggio) = false then
            campo = campo & "<br />. . . si prega di ricontrollare il testo inserito nell'area del messaggio, potreste aver inserito parole o contenuti non accettati!" & ""
        end if
    end if
    if Replace(campo,"§","") = "" then
    
    ' qui il codice per le impostazioni di invio del messaggio
'    Set Mail = Server............. ecc. ecc.
'    .........
'    .........
'    .........
'    .........
'    .........
'    Se tutto funziona 
        response.write "<p>Email inviata</p>"
        response.write "<p>Riepilogo di quanto inviato</p>" & "<p>Nome:<br />" & camponome & VbCrLf & "<br /><br />Messaggio:<br />" & campomessaggio & "</p>" & VbCrLf & VbCrLf
    else
    
        response.write "<h5>Sono stati rilevati degli errori</h5>"
        response.write "<p>Si prega di completare queste operazioni:</p><p>" & Replace(Replace(campo, "", "<br />"),"","</p>")
        response.write "<p>Email non inviata!</p>"
    end if
    
'    set Mail = nothing
    
%>
Quando avrò un po' di tempo amplierei la funzione per sistemare il problemino del formato maiuscolo o minuscolo, ho già un'idea al riguardo.
Volendo poi credo si possa migliorare ancora.
Sergio