D Dino Medlem sedan sep. 2001 1 914 inlägg Frågan 14 apr. 2007 13:11 #1 Har ett expression som är taget från regexlib och modifierat för mina behov. Har testat det i två regex editorer och det fungerar fint där. Men det vill inte fungera i javascript. Någon som vet varför?
<html><head>
<script language="javascript">
function checkPassword()
{
var pass = document.getElementById("tbContent").value;
if (!new RegExp("^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[#!=_])(?!.*[^a-zA-Z0-9#!=_]).{6,12}$").test(pass)){
alert("Bad password: " + pass);
}else{
alert("Good password: " + pass);
}
}
</script>
</head><body>
<textarea id="tbContent" rows="15" cols="60"></textarea>
<input type="button" value="Testa lösenord" onclick="checkPassword()" />
</body></html>
D Dino Medlem sedan sep. 2001 1 914 inlägg Kanske skall säga att jag vill att den skall kolla så att det finns minst en bokstav, minst en siffra och minst ett specialtecken och alltihop måste vara mellan 6-12 tecken.
Testade lite och såg att den faktiskt accepterar:
!2aaaaaaa
Men inte:
aaaaaaa!2
???
D Dino Medlem sedan sep. 2001 1 914 inlägg Hmm, verkar ha med webbläsaren att göra. Testade nu i Firefox och det fungerade fint, men inte i IE7. Var det Firefox du använde?
D Dino Medlem sedan sep. 2001 1 914 inlägg Ok, postar vidare till Microsoft för att försöka få reda på om det är någon bugg eller "by design".
Iaf, om det är någon som har ett expression som fungerar som ovan skall fast utan "assertions" (?=, ?!...) så är jag tacksam.
G Glitter Medlem sedan juli 2003 465 inlägg Använder inte IE document.all istället för document.getElementById?
Testa att skriva:
var pass = document.all ? document.all["tbContent"].value : document.getElementById("tbContent").value;
C colione Medlem sedan juni 2001 4 421 inlägg Nej.
Eller; man kan använda det också i IE, men IE stödjer getElementById sedan länge.