首页 文章

输入掩码中的可选字符

提问于
浏览
5

如何在输入掩码中指定可选字符?

我发现这个蒙版输入插件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 . 我怎么做?

4 回答

  • 3

    你需要使用 ? 作为可选字符,所以在你的情况下你应该使用“ 2?9:69 ” .

  • 0

    您在问题中链接到the page的引用和示例:

    您可以选择部分面具 . 在'?'之后列出的任何东西掩码内被认为是可选的用户输入 . 常见的例子是电话号码可选扩展名 .

    jQuery(function($){
       $("#phone").mask("(999) 999-9999? x99999");
    });
    
  • 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,对于那些在正则表达式中不识字的人 . )作为参考,我试图 Build 一个掩码来满足0.00 -10000.00条件如 oooo9.99 ,其中 o[]|[0-9] .

    由于代码确认这是基于正则表达式,因此null或范围模式应该工作但不是;这是掩码框架中一个比较模糊的错误 . 除非我是那个试图做错事的人,这也是可能的......

  • 4

    你可以用 $.mask.definitions['g']="[0-9 ]";

相关问题