Regular Expressions

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Kalvin

    Regular Expressions

    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

  • SimonFx

    #2
    Re: Regular Expressions

    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 )

    Kalvin wrote:[color=blue]
    > 1.
    > return ( /^[0-9]+$/.test(num) )
    > 2.
    > var regExp = new RegExp(/^[a-zA-Z0-9]+$/)
    > return ( regExp.test(str ) )[/color]
    [color=blue]
    > 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?[/color]

    Comment

    • Matthew Lock

      #3
      Re: Regular Expressions

      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.

      Comment

      • Matthew Lock

        #4
        Re: Regular Expressions

        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.

        Comment

        • Kalvin

          #5
          Re: Regular Expressions

          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

          Comment

          • sunami

            #6
            Re: Regular Expressions

            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:



            Comment

            • Mick White

              #7
              Re: Regular Expressions

              Kalvin wrote:
              [snip]

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

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

              Is the preferred construct, I believe.
              Mick

              [snip]


              Comment

              • Dr John Stockton

                #8
                Re: Regular Expressions

                JRS: In article <1107271535.327 230.147310@z14g 2000cwz.googleg roups.com>
                , dated Tue, 1 Feb 2005 07:25:35, seen in news:comp.lang. javascript,
                Kalvin <ktuel@streck.c om> posted :[color=blue]
                >
                >BTW, is there a way to discover what version of javascript is on a
                >machine?[/color]

                <URL:http://www.merlyn.demo n.co.uk/js-other.htm>
                <URL:http://www.merlyn.demo n.co.uk/js-tests.htm>

                But such tests do not necessarily work on all versions.

                Read newsgroup FAQ 4.26 and its Notes.

                --
                © John Stockton, Surrey, UK. ?@merlyn.demon. co.uk Turnpike v4.00 IE 4 ©
                <URL:http://www.jibbering.c om/faq/> JL/RC: FAQ of news:comp.lang. javascript
                <URL:http://www.merlyn.demo n.co.uk/js-index.htm> jscr maths, dates, sources.
                <URL:http://www.merlyn.demo n.co.uk/> TP/BP/Delphi/jscr/&c, FAQ items, links.

                Comment

                Working...