webForumDet fria alternativet

Reguljärt uttryck.

ASP

4 svar · 319 visningar · startad av yohpops

Medlem sedan feb. 20011 198 inlägg
Frågan#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
261 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
125 ms — hämta tråd, inlägg och bilagor (db)
133 ms — ändringar (db)