469,922 Members | 2,163 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,922 developers. It's quick & easy.

Password Regular Expression

Hi all,
hope someone can help me,

I am looking to do a password validation check using client side
validation. Minimum requirement is that it must contain at least one
number and one letter. (Ideally it would be of 6-20 characters in
length but first things first).

I have came up with the following regEx

^(\w*(?=\w+\d+)(?=\w*[a-zA-Z])\w*)$

This works fine in IE but when testing it using NS6 it won't validate
'1password', but will validate 'password1'. It seems the first forward
search is consuming the first character in NS, would this be correct,
and if so can anybody suggest either a way arround this or a different
regular expression,

Thanks in advance,

SJM.

Jul 23 '05 #1
9 2037
Stirling wrote on 15 mei 2004 in comp.lang.javascript:
I am looking to do a password validation check using client side
validation. Minimum requirement is that it must contain at least one
number and one letter. (Ideally it would be of 6-20 characters in
length but first things first).

I have came up with the following regEx

^(\w*(?=\w+\d+)(?=\w*[a-zA-Z])\w*)$

This works fine in IE but when testing it using NS6 it won't validate
'1password', but will validate 'password1'. It seems the first forward
search is consuming the first character in NS, would this be correct,
and if so can anybody suggest either a way arround this or a different
regular expression,


function pwTest(w){
t1 = /^[a-z\d]{6,20}$/i // only and length
t2 = /[a-z]/i // at least 1 letter
t3 = /\d/ // at least 1 number

return t1.test(w) && t2.test(w) && t3.test(w)
}
alert(pwTest("1qweqweasd"))
--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Jul 23 '05 #2
Ivo
"Stirling" wrote
I am looking to do a password validation check using client side
validation. Minimum requirement is that it must contain at least one
number and one letter. (Ideally it would be of 6-20 characters in
length but first things first).
<snip>


Lookahead regexes are not very widely supported. Look at this:

var pword='djuhy9dgyg';
alert( /[a-z]/i.test( pword ) && /\d/.test( pword ) && /.{6,20}/.test(
pword ) )
// alerts true or false

Three little regexes may not be the most efficient way, but would be fast
enough for me.
Ivo
Jul 23 '05 #3
Stirling <fa*******@NOSPAM.com> writes:
I am looking to do a password validation check using client side
validation. Minimum requirement is that it must contain at least one
number and one letter. I have came up with the following regEx

^(\w*(?=\w+\d+)(?=\w*[a-zA-Z])\w*)$
The matches a sequence of word-characters (a requirement you didn't
mention?) that contains at least one digit(!) after a word character,
and at least one letter. The reason you don't match "1password" is
the first + in (?=\w+\d+).

A simpler version could be:
/^(?=\w*\d)(?=\w*[A-Z])\w{6,20}$/i

Still, you are relying on lookahead, which only exists in newer
browsers, and which IIRC is broken in IE. In many cases, making
more than one test is much simpler than trying to encode everything
into one RegExp.

function testPasswd(pw) {
return /[a-z]/i.test(pw) && /\d/.test(pw) && /^\w{6,20}*$/.test(pw);
}
This works fine in IE but when testing it using NS6 it won't validate
'1password', but will validate 'password1'.
That supports my recollection that lookahead in IE is broken, because
it should not match "1password".
It seems the first forward search is consuming the first character
in NS, would this be correct,


Yes, because you asked it to.

/L
--
Lasse Reichstein Nielsen - lr*@hotpop.com
DHTML Death Colors: <URL:http://www.infimum.dk/HTML/rasterTriangleDOM.html>
'Faith without judgement merely degrades the spirit divine.'
Jul 23 '05 #4
Evertjan. wrote:
Stirling wrote on 15 mei 2004 in comp.lang.javascript:

I am looking to do a password validation check using client side
validation. Minimum requirement is that it must contain at least one
number and one letter. (Ideally it would be of 6-20 characters in
length but first things first).

I have came up with the following regEx

^(\w*(?=\w+\d+)(?=\w*[a-zA-Z])\w*)$

This works fine in IE but when testing it using NS6 it won't validate
'1password', but will validate 'password1'. It seems the first forward
search is consuming the first character in NS, would this be correct,
and if so can anybody suggest either a way arround this or a different
regular expression,

function pwTest(w){
t1 = /^[a-z\d]{6,20}$/i // only and length
t2 = /[a-z]/i // at least 1 letter
t3 = /\d/ // at least 1 number

return t1.test(w) && t2.test(w) && t3.test(w)
}
alert(pwTest("1qweqweasd"))

My problem is that I am using ASP.net validation, so it must consist of
a singe validation expression. Is there any other way of doing this
sirt of thing with a single expression without looking forward?

SJM.

Jul 23 '05 #5
Stirling wrote on 16 mei 2004 in comp.lang.javascript:
function pwTest(w){
t1 = /^[a-z\d]{6,20}$/i // only and length
t2 = /[a-z]/i // at least 1 letter
t3 = /\d/ // at least 1 number

return t1.test(w) && t2.test(w) && t3.test(w)
}
alert(pwTest("1qweqweasd"))

My problem is that I am using ASP.net validation, so it must consist of
a singe validation expression. Is there any other way of doing this
sirt of thing with a single expression without looking forward?


This once more convinces me to stick to classical ASP.

Either you are wrong or ASP-net stinks.

--
Evertjan.
The Netherlands.
(Please change the x'es to dots in my emailaddress)
Jul 23 '05 #6
Evertjan. wrote:
Stirling wrote:

<snip>
My problem is that I am using ASP.net validation, so it must consist
of a singe validation expression. Is there any other way of doing
this sirt of thing with a single expression without looking forward?


This once more convinces me to stick to classical ASP.

Either you are wrong or ASP-net stinks.


It does seem unlikely that ASP-net would impose such an arbitrary
restriction, but an expression could be a function call or a function
expression (that was called as - (function(){ ... })() -) so even with
this restriction there would be no limit on the amount of javascript
executed to resolve one expression.

Richard.
Jul 23 '05 #7
Richard Cornford wrote:
Evertjan. wrote:
Stirling wrote:


<snip>
My problem is that I am using ASP.net validation, so it must consist
of a singe validation expression. Is there any other way of doing
this sirt of thing with a single expression without looking forward?


This once more convinces me to stick to classical ASP.

Either you are wrong or ASP-net stinks.

It does seem unlikely that ASP-net would impose such an arbitrary
restriction, but an expression could be a function call or a function
expression (that was called as - (function(){ ... })() -) so even with
this restriction there would be no limit on the amount of javascript
executed to resolve one expression.

Richard.

What I am using is the Validation controls which are part of the ASP.net
framework (actullay I'm using a modified version called the
DOMValidators.) These controls attach to a Textbox, and allow a regular
expression match against the text box. Yes it is limiting, but it
reduces the amount of javascript that needs coded quite a lot. So I'm
stuck with using a single validation string.

S.

Jul 23 '05 #8
On Tue, 18 May 2004 19:06:10 +0100, "Richard Cornford"
<Ri*****@litotes.demon.co.uk> wrote:
Evertjan. wrote:
Either you are wrong or ASP-net stinks.
It does seem unlikely that ASP-net would impose such an arbitrary
restriction,


It's entirely possible ASP.NET webforms stink, no seriously, they
really stink. They are almost certainly the worst thing ever to come
out of Microsoft.
but an expression could be a function call or a function
expression (that was called as - (function(){ ... })() -) so even with
this restriction there would be no limit on the amount of javascript
executed to resolve one expression.


True, but stop shining the shite, there's no way it'll be worth it.

Jim.
--
comp.lang.javascript FAQ - http://jibbering.com/faq/

Jul 23 '05 #9
Jim Ley wrote:
"Richard Cornford" wrote:
Evertjan. wrote:
Either you are wrong or ASP-net stinks.


It does seem unlikely that ASP-net would impose such an
arbitrary restriction,


It's entirely possible ASP.NET webforms stink, no seriously,
they really stink. They are almost certainly the worst thing
ever to come out of Microsoft.

<snip>

I am not sure why I gave Microsoft credit for not being that stupid,
they demonstrate monumental incompetence on occasions, like the fact
that I have to use a Mozilla/Gecko browser when I visit the MSDN site
because they cannot cope with the configurability of their own (IE6)
browser.

Richard.
Jul 23 '05 #10

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

7 posts views Thread by Billa | last post: by
25 posts views Thread by Mike | last post: by
reply views Thread by =?Utf-8?B?am1obWFpbmU=?= | last post: by
3 posts views Thread by =?Utf-8?B?SXZhbiBBYnJhbW92?= | last post: by
4 posts views Thread by Jon Paal | last post: by
2 posts views Thread by Pakku | last post: by
reply views Thread by Waqarahmed | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.