如何屏蔽 BootsFaces 和 PrimeFaces 中的非西方拉丁字符?
How to mask non Western Latin characters in BootsFaces and PrimeFaces?
我需要使用 PrimeFaces p:inputMask
和 BootsFaces p:inputText
为某些输入字段添加输入掩码。
所需的掩码应该只接受阿拉伯字母加一些数字。
我的问题是:我不知道该怎么做,任何帮助将不胜感激。
可以使用正则表达式匹配阿拉伯字符。参见 Include Arabic characters in JavaScript regular expression?
BootsFaces
1.3 及更高版本
BootsFaces 1.3 及更高版本支持掩码中的正则表达式,例如:
<b:inputText mask="{ regex: '[0-9\u0600-\u06FF]*' }" />
1.3 之前
BootsFaces 附带 Inputmask by Robin Herbots. Before 1.3 the mask
attribute in b:inputText
only allows you to pass a mask expression. In a mask expression you cannot use regular expressions. However, the Inputmask library does support regular expressions。您可以通过省略 b:inputText
中的 mask
属性来创建解决方法,并使用 JavaScript:
初始化掩码
Inputmask({ regex: "[0-9\u0600-\u06FF]*" }).mask("input[type=text]");
0-9
是匹配数字,\u0600-\u06FF
是匹配阿拉伯字符。
使用 .mask("...")
,您可以 select 应用掩码的输入。
PrimeFaces
到目前为止 (6.2) PrimeFaces inputMask
不支持正则表达式。不过,您可以将 p:inputText
与 p:keyFilter
一起使用:
<p:inputText>
<p:keyFilter regEx="/[0-9\u0600-\u06FF]/"/>
</p:inputText>
请注意 PrimeFaces 使用 JavaScript 表示法:/pattern/
.
其他语言
您的问题是如何匹配掩码中的阿拉伯字符。当然,同样的解决方案可以应用于使用非西方拉丁字符的其他语言,例如:
- 中文
- 希伯来语
- 印地语
- 日语
- 韩语(韩文)
- 俄语(西里尔文)
对于每种语言/字符集,都是找到正确的正则表达式的问题。
我需要使用 PrimeFaces p:inputMask
和 BootsFaces p:inputText
为某些输入字段添加输入掩码。
所需的掩码应该只接受阿拉伯字母加一些数字。
我的问题是:我不知道该怎么做,任何帮助将不胜感激。
可以使用正则表达式匹配阿拉伯字符。参见 Include Arabic characters in JavaScript regular expression?
BootsFaces
1.3 及更高版本
BootsFaces 1.3 及更高版本支持掩码中的正则表达式,例如:
<b:inputText mask="{ regex: '[0-9\u0600-\u06FF]*' }" />
1.3 之前
BootsFaces 附带 Inputmask by Robin Herbots. Before 1.3 the mask
attribute in b:inputText
only allows you to pass a mask expression. In a mask expression you cannot use regular expressions. However, the Inputmask library does support regular expressions。您可以通过省略 b:inputText
中的 mask
属性来创建解决方法,并使用 JavaScript:
Inputmask({ regex: "[0-9\u0600-\u06FF]*" }).mask("input[type=text]");
0-9
是匹配数字,\u0600-\u06FF
是匹配阿拉伯字符。
使用 .mask("...")
,您可以 select 应用掩码的输入。
PrimeFaces
到目前为止 (6.2) PrimeFaces inputMask
不支持正则表达式。不过,您可以将 p:inputText
与 p:keyFilter
一起使用:
<p:inputText>
<p:keyFilter regEx="/[0-9\u0600-\u06FF]/"/>
</p:inputText>
请注意 PrimeFaces 使用 JavaScript 表示法:/pattern/
.
其他语言
您的问题是如何匹配掩码中的阿拉伯字符。当然,同样的解决方案可以应用于使用非西方拉丁字符的其他语言,例如:
- 中文
- 希伯来语
- 印地语
- 日语
- 韩语(韩文)
- 俄语(西里尔文)
对于每种语言/字符集,都是找到正确的正则表达式的问题。