^(?=[\w\-%&?#=]+\d)(?=[\w\-%&?#=]+[a-zA-Z])[\w\-%&?#=]{8,12}$
Was meant to match the below conditions in a JavaScript based new-password check,
With above regex, goog123#
was matched in FF3.5. However this fails in IE6. Anyone knows what went wrong here? Is this a compatibility issue?
JavaScript used to test the matching
function fnIsPassword(strInput)
{
alert("strInput : " + strInput);
var regExp =/^(?=.{0,19}\d)(?=.{0,19}[a-zA-Z])[\w%&?#=-]{8,20}$/;
if(strInput.length > 0){
return (regExp.test(strInput));
}
return false;
}
alert(fnIsPassword("1231231")); //false
alert(fnIsPassword("sdfa4gggggg")); //FF: true, false in IE
alert(fnIsPassword("goog1234#")); //FF: true , false in IE
The regex has a number of issues. Try this one instead:
^(?=.{,19}\d)(?=.{,19}[a-zA-Z])[\w%&?#=-]{8,20}$
which is:
^ # start-of-string (?=.{,19}\d) # look-ahead: a digit within 20 chars (?=.{,19}[a-zA-Z]) # look-ahead: a letter within 20 chars [\w%&?#=-]{8,20} # 8 to 20 chars of your allowed range $ # end-of-string
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With