我将素数从6.2.5更新到7.0.4时遇到了一个可怕的问题。
在我以这种方式使用inputMask
之前:
<p:inputMask id="input" value="#{bean.inputs.id}" mask="^^ ^^ ^^ ^^ ^^"
requiredMessage="#{label.lblRequired}" >
<f:validator validatorId="Validator"/>
</p:inputMask>
还有一个javascript部分,我定义了“ ^”的用法
$.mask.definitions['^'] = '[A-Fa-f0-9]';
使用primefaces 7.0.4时,正如您在此提交Link to primefaces github中所看到的,我不再可以使用此模式。 另外,如果我使用这种方式,则没有错误,但是值保持不变,但是在网页上它以正确的方式填充。
我的问题是,是否还有其他方法可以在输入的每个字段中添加正则表达式?还是我想念的模式
我尝试过的票价是:
<f:validateRegex pattern="[regex]"/>
->不好<p:keyFilter regEx="[regex]" />
->仅在inputText上工作答案 0 :(得分:2)
您正确的说,它已通过以下安全修补程序在PrimeFaces 7.0中被破坏:https://github.com/primefaces/primefaces/issues/3234
对修补此安全漏洞的开发人员在该线程中的注释。
jquery.maskedinput可让您定义自己的规则,也称为掩码 定义,例如〜可以定义为映射到+或-。例 来自https://github.com/digitalBush/jquery.maskedinput
jQuery(function($){
$.mask.definitions['~']='[+-]';
$("#eyescript").mask("~9.99 ~9.99 999");
});
但是,PrimeFaces似乎没有实现此功能。所以我在提交时忽略了它。
因此,您似乎应该在该故障单上注明它引起了回归问题。
更新9/2/2019 :此问题已在PF 7.0.8和7.1中修复:https://github.com/primefaces/primefaces/issues/5105