I need to define something similar to this regex:
[0-9]{1, 5}
On a PrimeFaces <inputMask>
element:
<p:inputMask mask="regexGoesHere" value="#{someBean.val}"/>
I looked at the PrimeFaces showcase, but I couldn't figure out how to do it.
So does anyone know how to do it in any way besides JavaScript ?
I'm not exactly looking for a solution with <inputMask>
anything that would restrict me from typing letters in the input on the client side is OK.
Thanks
If you want or need to limit the length too, you could do something like this:
<p:inputMask
mask="9?9999"
maxlength="5"
slotChar=" "
value="#{someBean.val}" />
where the user can only enter 1 to 5 digits, or the following for four digits and so on
<p:inputMask
mask="9?999"
maxlength="4"
slotChar=" "
value="#{someBean.val}" />
Prior to PrimeFaces 5.1: use placeHolder
instead of slotChar
(Issue 7324).
The following Masked Input Plugin is the original jquery plugin that is being used by Primefaces , you can find much more information about its usage, also there are several p:input-mask code example in this PDF PrimeFaces: More Input Elements look at page 24
KeyFilter from PrimeFaces Extensions looks exactly as something you need: http://fractalsoft.net/primeext-showcase-mojarra/views/keyFilter.jsf
According to documentation and example, it is driven by regexp, and functions exactly as it should: blocking the ability to type something not passing to the regexp.
just try this :
<p:inputMask maxlength="5">
<pe:keyFilter regEx="/[\d]/" />
</p:inputMask>
maxlength : limit the number of caracters to 5 max regEx : only authorize decimal caracter on key press
nb:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With