Avatar billede ch007 Nybegynder
10. februar 2004 - 15:55 Der er 18 kommentarer og
1 løsning

Fejl i kode: RegExp / Simpel validering

http://www.eksperten.dk/spm/383378

<%
function checkInput(inputstreng)
dim regcon
set regcon = new RegExp
regcon.pattern = "^[B-Zb-z0-9.+-/_]+$"
regcon.ignoreCase = true
checkInput = regcon.Test(inputstreng)
end function

if checkInput(request.form("tekst")) = false then
response.write "fejl"

else
response.write "godkendt"
end if
%>

<form action="test.asp" method="post" name="testform">
<input name="tekst" type="text" value=""><br><input name="send" type="submit" value="go">
</form>



Jeg har prøvet ovenstående.. Men den kommer med fejlen:

set regcon = new RegExp
-------------^

Hvad? Hvorfor?
Avatar billede ellebaek Nybegynder
10. februar 2004 - 15:58 #1
hvad er den fulde fejl??
Avatar billede ch007 Nybegynder
10. februar 2004 - 15:58 #2
---^ Skal gå helt hen til new RegExp
Avatar billede ch007 Nybegynder
10. februar 2004 - 15:58 #3
Microsoft VBScript compilation error '800a03ea'

Syntax error

/_slet.asp, line 9

set regcon = new RegExp
-------------^
Avatar billede ellebaek Nybegynder
10. februar 2004 - 16:01 #4
jeg er ikke sikker...
Er regExp en stadard komponent, for ellers kan det måske være fordi den ikke findes på dit domæne ?
Avatar billede ellebaek Nybegynder
10. februar 2004 - 16:02 #5
for det bør ikke gøre nogen forskel om du skriver new eller New. og set eller Set
Avatar billede ch007 Nybegynder
10. februar 2004 - 16:02 #6
Tja? Det virker jo som om den ikke forstår hva RegExp er for noget - muligvis...
Avatar billede ch007 Nybegynder
10. februar 2004 - 16:03 #7
Prøver lige din muligheder... Er der en anden måde at tjekke lovlig tegn på?
Avatar billede ch007 Nybegynder
10. februar 2004 - 16:04 #8
Ingen forskel med new/New/New. etc. Jeg har også prøvet at fjerne New...
Avatar billede ellebaek Nybegynder
10. februar 2004 - 16:11 #9
hvilke tegn er ulovlige ?
Avatar billede ch007 Nybegynder
10. februar 2004 - 16:19 #10
Jeg vil gerne tjekke at en bruger ikke skriver fx * i brugernavnet, altså "lovlige tegn" er:

regcon.pattern = "^[B-Zb-z0-9.+-/_]+$"

- dvs fra b-z og 0-9 og .+- osv...
Avatar billede ch007 Nybegynder
10. februar 2004 - 16:20 #11
function f(s)
  dim i
  const tegn="abcdefghijklmnopqrstuvwxyz0123456789,-./?"
  for i=1 to len(s)
    if InStr(tegn,Mid(s,i,1))= 0 then
      f=false
      exit function
    end if
  next
  f=true
end function

Er stødt på denne funktion istedet... Men hvordan hiver jeg ud om funktion f er true eller false?
Avatar billede eagleeye Praktikant
10. februar 2004 - 16:21 #12
Køre du koden på Chili!ASP så viker regular expression ikke. RegExp objectet er lige komme med i den nyeste version, men de fleste web-hoteler køre med ældre versioner.
Avatar billede eagleeye Praktikant
10. februar 2004 - 16:23 #13
>>Men hvordan hiver jeg ud om funktion f er true eller false?
På samme måde som den du har vist i sprøgsmålet bare med f i stedet for checkInput:

if f(request.form("tekst")) = false then
response.write "fejl"
Avatar billede ch007 Nybegynder
10. februar 2004 - 16:27 #14
Sådan! Tak for det!

eagleeye, smider du et svar?

Jeg har B-one og de bruger Chili!ASP, så JA!
Avatar billede ellebaek Nybegynder
10. februar 2004 - 16:27 #15
Ja, du gør som eagel skriver, og så skal const tegn indeholde de forskellige tegn der er ulovlige.
Avatar billede ellebaek Nybegynder
10. februar 2004 - 16:31 #16
nej, min fejl...

Det virkede modsat ;-)
Avatar billede ch007 Nybegynder
10. februar 2004 - 16:31 #17
Ellebaek - const tegn skal da indeholde de lovlige tegn...

Jeg har lige udbygget med Lcase(s) sådan at både store og små bogstaver er lovlige...
Avatar billede ch007 Nybegynder
10. februar 2004 - 16:31 #18
Ok :-)
Avatar billede eagleeye Praktikant
10. februar 2004 - 16:51 #19
Ok :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester