Regular Expression to make Text Field only hold 0-9 is allowing non numeric

berlink0304

22-09-2017

Hello,

I need a field in which a user is limited to a 3 digit entry which allows the numbers 0-9.

Currently I am using a text field as my object on my form, so I can limit the length to three characters.

I have looked into regular expressions in order to do what I want, but the problem is that I still can enter ".", "-", and "-".  That's the numpad Decimal, numpad Minus, and the dash keys.  I am unsure why these are allowed, but I need them to not be, as it allows a user to enter a negative or a decimal number into the field.  I imagine something isn't quite right with my regex or how I'm applying it.

If there's a better way of going about this, I'm all ears.

Accepted Solutions (1)

Accepted Solutions (1)

Naresh_Katkam

27-10-2017

Hi,

1). Using Number Field

For your requirement use XTYPE as numberfield. Add property to that node/field as maxValue.(Best Approach )

Example:

<limit jcr:primaryType="cq:Widget"
  fieldLabel="Limit"
  name="./limit"
  maxValue="9"
  xtype="numberfield"/>

2). Using Regex.

<limitjcr:primaryType="cq:Widget"
  fieldLabel="Limit"
  name="./limit"
  regex="/[0-9]{1}$/"
  regexText="Enter 0-9 values only."
  xtype="textfield"/>

Answers (5)

Answers (5)

Naresh_Katkam

29-10-2017

HI,

1). Using Regex

below example will allows 0-99 values only.

it will match your requirement.

<limit jcr:primaryType="cq:Widget"

  fieldLabel="Limit"

  name="./limit"

  regex="/^([0-9]{2}|[0-9]{1})$/"

  regexText="Enter 0-99 only.Number's only"

  xtype="textfield"/>

2). Using numberfield

you can free to use Number field as XTYPE. it works better for you.

If you give maxValue as 99. that field allow 0-99 values only.

Example:

<limit jcr:primaryType="cq:Widget"

  fieldLabel="Limit"

  name="./limit"

  maxValue="99"

  xtype="numberfield"/>

Thanks.

DavinderKaur

Employee

30-10-2017

As mentioned above best approach is to use the numeric field. If server is 6.3 onwards then there is a property (Maximum Number of Digits) to set the maximum no. of allowed digits in numeric field that can control the limit of entered digits.

numeric_field_properties.png