webForumDet fria alternativet

hjälp med Regular Expressions

ASP

3 svar · 184 visningar · startad av medialabs

Medlem sedan mars 20023 686 inlägg
Frågan#1

Tjenare,

har försökt skapa en Regular Expressions funktion för att kolla om rutorna som användaren fyller i inte innehåller någon av dessa tecken till att börja med.

Jag behöver med andra ord en fungerande function som kollar om någon av dessa tecken finns så ska man skickas till en annan sida. Jag skulle också vilja veta ur jag sedan använder mig av functionen när jag hämtar in rutorna med

Trim(FixInject(Request.Form("namn"))) osv..

å\ä\ö\!\"\@\#\¤\%\&\/\(\)\=\?\´\`\+\}\{\$\£\,\;\:\'\*\¨\^\~\]\[

Har sökt och i alla fall försökt att förstå men det tar stop. kulle behöva en sådan här funktion snaras. :)

Medlem sedan dec. 20003 887 inlägg
#2

Engine^ till din tjänst :)

Function HasBadChars(strTest)
  Dim objRX

  HasBadChars = False

  Set objRX = New RegExp
  objRX.IgnoreCase = True
  objRX.Global = True
  objRX.Pattern = "[åäö!\x22@#¤%&/\(\)=\?´`\+\}\{\$£,;:'\*¨\^~\[\]]"

  If objRX.Test(strTest) Then HasBadChars = True
End Function

If HasBadChars(Trim(FixInject(Request.Form("namn")))) Then
  Response.Write "Ogiltiga tecken."
Else
  Response.Redirect "annansida.asp"
End If
Medlem sedan mars 20023 686 inlägg
#3

Engine^ skrev:

Engine^ till din tjänst :)

Function HasBadChars(strTest)
  Dim objRX

  HasBadChars = False

  Set objRX = New RegExp
  objRX.IgnoreCase = True
  objRX.Global = True
  objRX.Pattern = "[åäö!\x22@#¤%&/\(\)=\?´`\+\}\{\$£,;:'\*¨\^~\[\]]"

  If objRX.Test(strTest) Then HasBadChars = True
End Function

If HasBadChars(Trim(FixInject(Request.Form("namn")))) Then
  Response.Write "Ogiltiga tecken."
Else
  Response.Redirect "annansida.asp"
End If

Engine^:

Tackar, skulle du kunna förklara dom olika delarna i denna kod för en som aldrig har hållt på med Regular Expressions tidigare. :)

T.ex. denna rad. exakt vad är det som filtreras bort? siffran 2 också eller?

åäö!\x22@#¤%&/\(\)=\?´`\+\}\{\$£,;:'\*¨\^~\[\]

Det hade nästan varit bättre att bara tillåta a-z 0123456789 och -_ trots allt. :)

Medlem sedan mars 20023 686 inlägg
#4

la till lite flera tecken som inte är tillåtna och så testar jag dom olika inputfälten med detta och det fungerar :)

If HasBadChars(Trim(FixInject(Request.Form("namn")))) or HasBadChars(Trim(FixInject(Request.Form("ja")))) Then
  objRX.Pattern = "[åäö!\x22@#¤%&/\(\)=\?´`\|\½\\<>\+\}\{\$£,;:'\*¨\^~\[\]]"
256 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
120 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)