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.
Solved! Go to Solution.
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"/>
Why are you not using a numeric field and setting the Maximum Number of Digits to 3?
Views
Replies
Total Likes
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"/>
^(0|[1-9][0-9]*)$ this for two digit between 0 to 9 and also allow 0
ref: Regex pattern for numeric values - Stack Overflow
it think you can try ^(0|[1-9][0-9][0-9]*)$
TundraSteve any further thoughts?
Views
Replies
Total Likes
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.
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.
Views
Replies
Total Likes