【问题标题】:JSF/Primefaces: How to make digit 9 a constant in Inputmask tag?JSF/Primefaces:如何在 Inputmask 标签中使数字 9 成为常量?
【发布时间】:2015-05-11 10:33:26
【问题描述】:

我想添加一个输入掩码,它应该接受标准格式的电话号码。我想为标准电话号码格式提供“输入掩码”,例如:+92 321 9388233。那么如何在掩码中将 +92 作为常数?数字 9 的行为不是恒定的。如何使数字 9 保持不变。

【问题讨论】:

  • 也许你可以用一个简单的<h:inputText> 试试,然后在服务器端用给定的正则表达式验证它?

标签: jsf-2 primefaces mask jsf-2.2 input-mask


【解决方案1】:
<input type="text" data-inputmask='"mask": "+\\92999-9999999"' data-mask />

只需在 9 之前添加 \\ 即可解决您的问题,并会在文本开头添加一个常量值,例如 +92。

【讨论】:

    【解决方案2】:

    数字 9 被定义为所有数字的掩码。如果你想要它作为一个常量,你可以尝试编写自己的正则表达式,如下所示:

    <p:inputMask>
        <pe:keyFilter regEx="\\+92[0-9 ]+" />
    </p:inputMask>
    

    更新

    我找到了更好的解决方案,因为这个不起作用。

    您可以在 JavaScript 中重新定义掩码定义。只需将此脚本添加到您的文件中:

    $.mask.definitions['9'] = '';
    $.mask.definitions['d'] = '[0-9]';
    

    现在您的数字掩码将是字母 d 而不是数字 9。所以,这可以是你的面具:

    <p:inputMask mask="+92 ddd ddddddd" />
    

    【讨论】:

    • 这行不通!
      &lt;p:inputMask id="mnum" value="#{indexManagedBean.mobilenum}" mask="+92-999-9999999" &gt;
      &lt;pe:keyFilter regEx="\\+92[0-9 ]+" /&gt;
      &lt;/p:inputMask&gt;
    • 是的,我还没有工作!如果我删除掩码,则文本字段中不会出现任何掩码!
    • 您是指素数人脸库? @亚历山大
    • 是的,我已经包含了这个扩展@alexander
    • 不,我使用了
    猜你喜欢
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多