如何在输入掩码中指定可选字符?
我发现了这个蒙版输入插件http://digitalbush.com/projects/masked-input-plugin/和这些掩码定义。
$.mask.definitions['g']="[ ]";
$.mask.definitions['h']="[aApP]";
$.mask.definitions['i']="[mM]";
$.mask.definitions['2']="[0-1]";
$.mask.definitions['6']="[0-5]";
new_mask = "29:69";
$("#txtTime").mask(new_mask);
这定义了12小时时间格式的输入掩码,例如11:00。我想让用户只为“小时”指定一个数字。用户应该能够键入1:00,而不必键入01:00。我该怎么做?
答案 0 :(得分:4)
您需要使用?
作为可选字符,因此在您的情况下,您应该使用“2?9:69
”。
答案 1 :(得分:3)
您在问题中链接到的the page引用和示例:
您可以选择部分面具。在'?'之后列出的任何东西 掩码内被认为是可选的用户输入。常见的例子 这是电话号码+可选扩展名。
jQuery(function($){
$("#phone").mask("(999) 999-9999? x99999");
});
答案 2 :(得分:0)
您可以使用$.mask.definitions['g']="[0-9 ]";
答案 3 :(得分:0)
我有一个类似的问题,我试图解决可变货币金额($ 0.00 - $ 10000.00),我真的不明白插件是如何工作的。
一方面,$.mask.definitions['symbol'] = '???'
位看起来像是使用了一个正则表达式片段,基于API参考中的示例,并且在mask
函数中的源中的这一部分得到了一些确认。代码:
$.each(mask.split(""), function (i, c) {
if (c == '?') {
len--;
partialPosition = i;
} else if (defs[c]) {
tests.push(new RegExp(defs[c]));
if (firstNonMaskPos == null)
firstNonMaskPos = tests.length - 1;
} else {
tests.push(null);
}
});
...另一方面,[]|[0-9]
的掩码定义不起作用(我试图做空字符串或0-9,对于那些在正则表达式中不识字的人。)作为参考,我试图构建一个掩码,以满足oooo9.99
之类的0.00-10000.00条件,其中o
为[]|[0-9]
。
由于代码确认这是基于正则表达式,因此null或范围模式应该有效但不是;这是掩码框架中一个比较模糊的错误。除非我是试图做错事的人,这也是可能的......