Reguljärt uttryck.

ASP

4 svar · 342 visningar · startad av yohpops

Medlem sedan feb. 20011 198 inlägg
Trådstart#1

Hej.

I samband med att vi vår nya lösenordspolicy tänkte jag använda reguljära uttryck för att verifiera lösenorden vid byte på en site.
Jag får inte till det.

Hur ser uttrycket ut för att verifiera dessa punkter.

"Ditt lösenord måste innehålla tecken från minst 3 av följande 4 klasser:
Versaler A, B, C …
Gemener a, b, c …
Numerisk 0, 1, 2 …
Specialtecken <>*?#()

Lösenordet måste vara minst 8 tecken långt
Lösenordet får inte innehålla å, ä ,ö , Å, Ä ,Ö"

Tack på förhand.

Medlem sedan juni 20008 205 inlägg
#2

Det går att göra med en regexp, men det är enklare med ett par stycken. Typ:

$caps = 'A-Z', $lowers = 'a-z', $nums = '0-9', $specials = '<>\*\?#\(\)';
$used = 0;
if (ereg("[$caps]", $passw)) $used++;
if (ereg("[$lowers]", $passw)) $used++;
if (ereg("[$nums]", $passw)) $used++;
if (ereg("[$specials]", $passw)) $used++;
if ($used >= 3 && strlen($passw) >= 8 && ereg("^[$caps$lowers$nums$specials]\$", $passw))
// OK lösenord
else // inte OK
Medlem sedan feb. 20011 198 inlägg
#3

Tack.

Kan du översätta det till VB?

mvh
J

Medlem sedan juni 20008 205 inlägg
#4

Ooops, jag hade visst för mig att det var i ett annat forum jag postade :r
Kommer inte ihåg/orkar inte leta upp exakt hur man gör det, men sök på "regexp" eller liknande här så... mönstren är desamma.

Medlem sedan feb. 20011 198 inlägg
#5

Jag lyckades fixa det själv.

Set objRegExp = New Regexp
passw = inputbox("Enter password.",,"")
caps = "A-Z"
lowers = "a-z"
nums = "0-9"
specials = "!@#£¤$%{()=}?+_-"
used = 0

objRegExp.Pattern = "["& caps &"]"

if (objRegExp.test(passw)) then used=used+1
objRegExp.Pattern = "["& lowers &"]" 

if (objRegExp.test(passw)) then used=used+1
objRegExp.Pattern = "["& nums &"]" 

if (objRegExp.test(passw)) then used=used+1
objRegExp.Pattern = "["& specials &"]" 

if (objRegExp.test(passw)) then used=used+1
objRegExp.Pattern = "["& caps & lowers & nums & specials & "]" 

if (used >= 3 and len(passw) >= 8 and objRegExp.test(passw)) then
	msgbox "OK lösenord"
else
	msgbox "inte OK lösenord"
end if
257 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)