Jag skulle inte vilja ge mig på att utforma en regexp som kontrollerar en sådan sträng.
Istället kan du göra så här:
<script type="text/javascript">
tal = "545455";
if(/^[2-9]{6}$/.test(tal)){
digit1 = false;
digit2 = false;
digit1occ = 0;
digit2occ = 0;
for(i=0; i<tal.length; i++){
if(!digit1 || digit1==tal.charAt(i)){
digit1 = tal.charAt(i);
digit1occ++;
}else if(!digit2 || digit2==tal.charAt(i)){
digit2 = tal.charAt(i);
digit2occ++;
}
}
document.write("digit1="+digit1+"<br />");
document.write("digit2="+digit2+"<br />");
document.write("digit1occ="+digit1occ+"<br />");
document.write("digit2occ="+digit2occ+"<br />");
if((digit1occ==4 && digit2occ==2) || (digit1occ==2 && digit2occ==4))
alert("talet är ok");
}
</script>
Du kan plocka bort document.write-raderna.
Om talet är sex tecken långt, bara innehåller två olika slags siffror som är mellan 2 och 9, och de två siffrorna förekommer 4 resp 2 gånger kommer meddelandet "talet är ok" upp.
