Skip to main content
Inspiring
October 15, 2010
Answered

validate cfinput using regular expression

  • October 15, 2010
  • 1 reply
  • 3828 views

Hi,

can somebody help me valditing an cfinput field using regular expressions?

First digit must be a number or "R".

Digit 2-15 can be everything without special characters. Digit 2-15 can also be empty.

I try this, but it doesn't work (Sorry I'm a beginner using regex).

<cfinput type="text" name="field1" required="yes" validate="regular_expression"  pattern="[0-9Rr][0-9a-zA-Z]*"  maxlength="15">

Thank you in advice!

Claudia

    This topic has been closed for replies.
    Correct answer JMF3

    Sorry, when I get on your nerves but

    do you mean this?

    [0-9Rr]^0-9a-zA-Z$

    Could you please give me the solution?

    C.


    ^[0-9Rr]([0-9a-zA-Z]{1,14})?$

    1 reply

    Inspiring
    October 15, 2010

    You haven't told your regex to match the entire string, so it will "pass"

    any string that has your match anywhere within it, so like as long as it's

    got an R or a digit in it: it's OK.

    To tell it to match the entire string, anchor it to the start and end of the

    string with ^ and $ respectively.

    Regular expression syntax: Using special characters

    http://help.adobe.com/en_US/ColdFusion/9.0/Developing/WSc3ff6d0ea77859461172e0811cbec0a38f-7ffb.html#WSc3ff6d0ea77859461172e0811cbec0a38f-7fef

    --

    Adam

    biene22Author
    Inspiring
    October 15, 2010

    Hi Adam,

    okay, first digit is clear, but the rest of the string is not clear to me.

    How to check if all other digits are empty or have no sprecial characters in it?

    can you please give me an example?

    Claudai

    Inspiring
    October 15, 2010

    Your regex is basically correct. All you need to do is to say "and make

    sure it matches the entire string", not just "any substring", like you

    currently have.

    To do this, one forces the regex to match from the beginning of the string,

    right through to the end of the string.

    So, for example a regex of "ant" would match "ant" or "pants" or

    "elephant". However "^ant$" would not match "pants" or "elephant" because

    the "^" means "match the beginning of the string", and "$" means "match the

    end of the string". In effect this makes it so your regex must match the

    entire string.

    Make sense?

    --

    Adam