繁体   English   中英

输入掩码中的可选字符

[英]Optional character in input mask

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

我发现这个屏蔽输入插件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。 我怎么做?

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

您在问题中链接到的页面中的引用和示例:

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

jQuery(function($){
   $("#phone").mask("(999) 999-9999? x99999");
});

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

我有一个类似的问题,我试图解决可变货币金额($ 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,对于那些在正则表达式中不识字的人。)作为参考,我试图构建一个掩码来满足0.0010000.00条件,如oooo9.99 ,其中o[]|[0-9]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM