JavaScript RegExp Quantifiers

Discussion in 'Internet Explorer' started by Nathan Sokalski, Jun 11, 2008.

  1. I have the following script that I am using to test some JavaScript RegExp
    code:

    function RE()
    {
    var testing1=new RegExp("[.]*");
    var testing2=new RegExp("[.]{0,}");
    var testing3=new RegExp("[.]+");
    var testing4=new RegExp("[.]{1,}");
    window.alert(testing1.test("ab")+"\n"+testing2.test("ab")+"\n"+testing3.test("ab")+"\n"+testing4.test("ab"));}When this script is run, the window.alert contains the following results:truetruefalsefalseThe the first two trues make since, but why are the falses false? Thequantifiers in the RegExp, if I understand correctly, say it should beallowed to have 1 or more characters (other than newlines and lineterminators), and I know that 'a' and 'b' are not newlines or lineterminators, and "ab" is more than 1 character. I am using Internet Explorer6.0. Is this a bug in IE? Am I doing something else wrong? Any help would beappreciated. Thanks.--Nathan ://www.nathansokalski.com/
     
    Nathan Sokalski, Jun 11, 2008
    #1
    1. Advertisements

  2. Inside a set, the period doesn't mean "any character except newline", it
    just means a period.

    testing3.test("ab.") will return true, as there is a period in the string.


    The testing1 and testing2 patterns are equivalent, and also equivalent
    with the pattern "\.*".

    The testing3 and testing4 patterns are equivalent, and also equivalent
    with the pattern "\.+".
     
    Göran Andersson, Jun 11, 2008
    #2
    1. Advertisements

  3. Nathan Sokalski

    Hans Kesting Guest

    Göran Andersson wrote on 11-6-2008 :
    And to add to this:
    [.]* means: a period, *zero* or more times. And "ab" contains zero
    periods.
    [.]+ means: at least *one* period, so "ab" does not match.

    Hans Kesting
     
    Hans Kesting, Jun 13, 2008
    #3
    1. Advertisements

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 (here). After that, you can post your question and our members will help you out.