11-讨论
11.2.3 讨论
指定固定格式时可以使用4个具有特别意义的字符:
a
字母字符a~z、A~Z。
9
0~9的任意数字。
*
任何字母和数字字符,也就是a~z、A~Z和0~9。
?
在此之后可以是任意字符。
任何其他字符(如 phone 掩码中的圆括号或者连字符)都被认为是字面量,插件自动将它们插入输入字段中,用户无法删除。
默认情况下,插件为每个可变字符插入下划线(_)。对于电话号码示例,输入字段获得焦点时将显示如下值:
(___) ___-____
当用户开始输入时,如果输入的是有效字符(数字),第一个下划线将被替代。其他字面量也会被跳过。
下划线占位符可以通过传递一个附加的参数自定义:
$("#phone").mask("(999) 999-9999", {placeholder: " "});
上述代码显示空格代替下划线。
也可以定义新的格式字符:
$.mask.definitions['~'] = '[+−]';
$("#eyescript").mask("~9.99~9.99 999");
上面定义了新的格式字符~,允许值为 + 和 - ,指定的方式和正则表达式的字符类相同。以后,~可以用在固定格式中。
问号可以建立有固定部分和可选部分的格式。有可选分机号的电话号码可以这样定义:
$("#phone").mask("(999) 999-9999? x99999");
当组合固定格式和验证插件(秘诀11.1)时,重要的是为字段定义合适的规则。否则,验证插件可能将固定格式插件的占位符当作有效的输入,在用户刚插入第一个字符时,如果无效的字段被标识为有效,用户肯定不会高兴的。
局限性
这个插件主要的局限性是固定长度的要求。它不能用于可变长度的输入字段,如货币值。例如,“$ 999,999.99”要求输入100 000.00~999 999.99之间的值,而不能接受此范围之外的数值。