Primefaces p:inputmask中的转义码9

Primefaces p:inputmask中的转义码9,primefaces,escaping,jsf-2.2,input-mask,Primefaces,Escaping,Jsf 2.2,Input Mask,我想在用户输入的每个电话号码前加上+90(土耳其的电话号码)。因此,我使用的面具如下: <p:inputMask id="homePhone" value="#{personController.model.homePhone}" mask="+90 (999) 999-9999" size="20" converter="converterPhone" /> 但是它是这样显示的:+\u0(\uuuuuuuuuuuuuuuuuuuuuuu

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

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

但是它是这样显示的:
+\u0(\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

但是,我希望它看起来像这样:
+90(\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

有没有办法像这样逃出第一个
9
mask=“+\90(999)999-9999”


谢谢大家……

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

$.mask.definitions['9'] = '';
$.mask.definitions['x'] = '[0-9]';
现在您可以使用x作为遮罩:

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


当您的新掩码行为异常,并用掩码替换一些静态字符时,就会有一个使用字符作为符号的定义。要解决这个问题,你需要对字符进行两次转义。

它有效吗?@Billy Hope,它不会对整个系统做出改变吗?我希望影响最小(不想影响其他开发者的代码)。但是,如果用另一个字符(可能是*或#)来表示所有数字,而不是9,那就太好了。我不知道它会如何影响其他开发人员的代码,只要您只在自己的代码上使用JavaScript,无论如何#是一个很好的选择,goodluckIt就像一个符咒一样工作(我使用#而不是x,因为我代表x作为扩展)。谢谢你的回答。嗨,维塔利克,欢迎来到Stack Overflow。我可以请你以后不要只回答代码吗。试着提供一个关于你的解决方案如何工作的很好的描述。谢谢。嗨,卢卡,你能给我举个例子,说明我如何双倍逃逸字符吗?谢谢
const phoneMask = new Inputmask("+886(xxx)xxx-xx-xx");

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

phoneMask.mask(someElement);