【发布时间】:2017-12-22 12:34:08
【问题描述】:
我在数据表中有一个列,用户可以在其中输入以下格式的冒号分隔数字: 0:0:0:0 到 32767:65535:65535:65535
我尝试了以下 2 种方法,但它们似乎无法正常工作或看起来不错:
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{myClass.col1}" /></f:facet>
<f:facet name="input">
<p:inputMask mask="9?9999:9?9999:9?9999:9?9999" maxlength="23" value="#{myClass.col1}" >
</p:inputMask>
</f:facet>
</p:cellEditor>
我也试过了:
<p:cellEditor>
<f:facet name="output"><h:outputText value="#{myClass.col1}" /></f:facet>
<f:facet name="input">
<p:inputText value="#{myClass.col1}" >
<f:validateRegex pattern="^([0-9]{0,5}[:-]){3}([0-9]{0,5})"/>
</p:inputText>
</f:facet>
</p:cellEditor>
无论如何我可以结合 inputMask 和 validateRegex 使“空白”(初始)单元格看起来像“: : :”,接受的范围是 0:0:0:0 到 32767:65535:65535:65535 和输入的值也是右对齐的(即“1:23:345:4567”)
【问题讨论】:
-
基于此,我现在有
<p:inputMask mask=" " maxlength="23" value="#{myClass.col1}" > <f:validateRegex pattern=" "/> </p:inputMask>"1 到 5 位:1 到 5 位:1 到 5 位:1 到 5 位"的掩码是什么? “0:0:0:0 to 32767:65535:65535:65535”的正则表达式模式是什么? -
在你的情况下,我会加入一个自定义验证器来处理范围。
标签: jsf