我需要使用PrimeFaces p:inputMask
和BootsFaces p:inputText
为某些输入字段添加输入掩码。
所需的面具应该只接受阿拉伯字母和一些数字。
我的问题是:我不知道该怎么做,任何帮助都会受到赞赏。
答案 0 :(得分:2)
可以使用正则表达式匹配阿拉伯字符。见Include Arabic characters in JavaScript regular expression?
BootsFaces 1.3及更高版本支持掩码中的正则表达式,如:
<b:inputText mask="{ regex: '[0-9\u0600-\u06FF]*' }" />
BootsFaces附带Inputmask by Robin Herbots。 1.3之前mask
中的b:inputText
属性只允许您传递掩码表达式。在掩码表达式中,您不能使用正则表达式。但是,the Inputmask library does support regular expressions。您可以通过省略mask
中的b:inputText
属性并使用JavaScript初始化掩码来创建变通方法:
Inputmask({ regex: "[0-9\u0600-\u06FF]*" }).mask("input[type=text]");
0-9
用于匹配数字,\u0600-\u06FF
用于匹配阿拉伯字符
使用.mask("...")
,您可以选择应该应用蒙版的输入。
到目前为止(6.2)PrimeFaces inputMask
不支持正则表达式。您可以将p:inputText
与p:keyFilter
一起使用:
<p:inputText>
<p:keyFilter regEx="/[0-9\u0600-\u06FF]/"/>
</p:inputText>
请注意,PrimeFaces使用JavaScript表示法:/pattern/
。
您的问题是如何匹配面具中的阿拉伯字符。当然,相同的解决方案可以应用于使用非西方拉丁字符的其他语言,例如:
对于每种语言/字符集,都需要找到正确的正则表达式。