在p:inputmask中转义数字9

时间:2016-10-07 09:03:49

标签: primefaces escaping jsf-2.2 input-mask

我想在用户输入的每个电话号码前加上+90(土耳其电话代码)。因此我使用这样的面具:

<p:inputMask mask="+90 (999) 999-9999" id="homePhone" value="#{personController.model.homePhone}" size="20" converter="converterPhone" />

但它显示为:

+_0 (___) ___-____   /* but i want it to look like this: */ +90 (___) ___-____

有没有办法像这样逃避前9个:

mask="+\90 (999) 999-9999"

谢谢大家..

3 个答案:

答案 0 :(得分:4)

数字9用作所有数字的掩码,如果你想使用9,使用JavaScript更改掩码,重新定义x作为掩码:

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

现在你可以使用x作为掩码,:

<p:inputMask mask="+90(xxx) xxx-xxxx" id="homePhone"  />

答案 1 :(得分:0)

const phoneMask = new Inputmask("+886(xxx)xxx-xx-xx");

phoneMask.definitions.x = phoneMask.definitions['9'];
delete phoneMask.definitions[9];

phoneMask.mask(someElement);

答案 2 :(得分:0)

当新蒙版的行为很奇怪,并用该蒙版替换了一些静态字符时,就会有一个使用字符作为符号的定义。要解决此问题,您需要对字符进行两次转义