Regular Expressions

K

Kalvin

Please help me understand regular expressions. I have read different
articles about them, they all seem to explain it differently.

1.
On one site it says to do it like this:
return ( /^[0-9]+$/.test(num) )

2.
On another it says:
var regExp = new RegExp(/^[a-zA-Z0-9]+$/)
return ( regExp.test(str) )

3.
I see others that put the expression into a string and then test it.

I have tried both 1 and 2, and on some clients 2 will work, but on
others it always returns false no matter what. What's the difference
between them? How do I know what is going to work on all clients?

Is there a way to find out exactly what version of Javascript is being
used on the client. Not from code, but just by looking somewhere on
the machine. A lot of what I am trying to write this for is websites
to be used internally.

I appreciate your time.
Kalvin
 
S

SimonFx

Damn! I just started to rely on Regular Expressions ... what clients are
causing the problem? I don't actually use parentheses like you do, and I
think you are supposed to use quotes when doing the new RegExp thing.

1.
return /^[0-9]+$/.test(num)
2.
var regExp = new RegExp ("^[a-zA-Z0-9]+$")
return regExp.test(str)
1.
return ( /^[0-9]+$/.test(num) )
2.
var regExp = new RegExp(/^[a-zA-Z0-9]+$/)
return ( regExp.test(str) )
 
M

Matthew Lock

Apart from really old browsers the only difference I am aware of is
that IE 5.0 doesn't support non-capturing parenthesis eg: (?:banana)
There may be more differences but I haven't come across any myself.
 
M

Matthew Lock

Apart from really old browsers the only difference I am aware of is
that IE 5.0 doesn't support non-capturing parenthesis eg: (?:banana)
There may be more differences but I haven't come across any myself.
 
K

Kalvin

We use IE 6 and Netscape. In our company we use an image to rebuild
machines, and so far have only come across one that example 2 just will
not work. I used example 1 and it worked fine, so far. I really like
regular expressions, and hope I don't have other problems later.

Thank you everyone for your replies.

BTW, is there a way to discover what version of javascript is on a
machine?

Kalvin
 
S

sunami

Both ways of using the regulare expression are the same ... the first
method is more consise and the RegExp object is created on-the-fly.
The 2nd method is using a pre-defined RegExp object.

If you're getting different results from different clients, it's
probably because of the differences in the JavaScript engines. You can
find out which version buy the client's version (like Firefox is
implementing JavaScript 2 ... just an example .. i'm not sure which
version it's implementing).

a good resource on JavaScript:

http://www.devguru.com/Technologies/ecmascript/quickref/javascript_index.html
 
M

Mick White

Kalvin wrote:
[snip]

var regExp = new RegExp(/^[a-zA-Z0-9]+$/)
return ( regExp.test(str) )

return new RegExp("^[a-z0-9]+$","i").test(str);

Is the preferred construct, I believe.
Mick

[snip]
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,007
Latest member
obedient dusk

Latest Threads

Top