Primefaces p:inputmask中的转义码9
我想在用户输入的每个电话号码前加上+90(土耳其的电话号码)。因此,我使用的面具如下: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
<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);