Håller med, dessutom används inte spara-sidan för detta, javacript (fel forum?) gäller, och RegExp!
Så här gör jag för att kontrollera 4 bokstäver + 2 siffror
var reg = new RegExp();
reg = /\W/;
var losen = form.losen1.value;
var elaka = reg.exec(losen);
if (elaka != null){
alert("Du har ogiltiga tecken\r\ni ditt lösenord.");
form.losen1.focus();
return (false);
}
var reg = new RegExp();
reg = /\w{6,}/;
var antal = reg.exec(losen); //null om ej 6
if ((antal == null) || (form.losen1.value.length > 8)){
alert("Lösenordet ska vara sex till åtta\r\ntecken, varav minst två siffror.");
form.losen1.focus();
return (false);
}
var reg = new RegExp();
reg = /\d{1}/;
var siffra1 = reg.exec(losen);
var hoger_losen = RegExp.rightContext
var siffra2 = reg.exec(hoger_losen);
if (siffra2 == null){
alert("Du måste ha minst två siffror")
form.losen1.focus();
return (false);
}
Function ValidatePassword(strPW)
Dim objRX, intLen
intLen = Len(strPW)
If intLen < 6 Then
ValidatePassword = False
Else
Set objRX = New Regexp
objRX.Global = True
objRX.IgnoreCase = True
objRX.Pattern = "(.*\d){2,}"
ValidatePassword = objRX.Test(strPW)
objRX.Pattern = "[a-z]"
ValidatePassword = ValidatePassword And objRX.Test(strPW)
End If
End Function
Response.Write ValidatePassword("abc2k4")
men om det bara är tvunget med en siffra hur gör man då?
Om du menar i min kod är det
reg = /\d{1}/;
var siffra1 = reg.exec(losen);
var hoger_losen = RegExp.rightContext
var siffra2 = reg.exec(hoger_losen);
if (siffra2 == null){
alert("Du måste ha minst två siffror")
form.losen1.focus();
return (false);
}
som fixar det, ta bort detta helt enkelt. Pattern 'reg' kontrolleras två gånger, andra gången på det som är kvar, blir det inte träff där, är det fel.
får det inte att fungera. har jag gjort rätt eller?
<head>
<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
var reg = new RegExp();
reg = /\W/;
var losen = form.losen1.value;
var elaka = reg.exec(losen);
if (elaka != null){
alert("Du har ogiltiga tecken\r\ni ditt lösenord.");
form.losen1.focus();
return (false);
}
var reg = new RegExp();
reg = /\w{6,}/;
var antal = reg.exec(losen); //null om ej 6
if ((antal == null) || (form.losen1.value.length > 8)){
alert("Lösenordet ska vara sex till åtta\r\ntecken, varav minst två siffror.");
form.losen1.focus();
return (false);
}
Njae, har du BARA klistrat in min kod utan att översätta den till dig fungerar det ju inte.
Dessutom: OM du har en gammal version av VB-motorn (?) fungerar inte RegExp, men det är nog endast problem om du kör NT4.
nee under 2000 kan script motorn vara för gammal också! (har jag fått erfara nyligen) men den går enkelt att hämta ner senaste versionen av Script motorn från microsoft! curr.ver: 5.6