用于多种格式的jQuery zip屏蔽

Joh*_*dol 11 javascript jquery zipcode masking

我有一个屏蔽zip字段的要求,因此它允许使用经典的5位数字zip(XXXXX)或5 + 4格式(XXXXX-XXXX).

我可以这样:

$('#myZipField').mask("?99999-9999");
Run Code Online (Sandbox Code Playgroud)

但是复杂性来自这样一个事实:如果用户只输入5位数字,则不应显示破折号.

这是我到目前为止所提出的最好的 - 我可以将它扩展为在插入第6位数字时自动插入短划线但是这个问题在删除时会很有趣(我可以阻止它们删除短划线但它会修补补丁等等,它变成了一场噩梦):

$.mask.definitions['~']='[-]';
$("#myZipField").mask("?99999~9999", {placeholder:""});
Run Code Online (Sandbox Code Playgroud)

是否有开箱即用的方式或我必须自己滚动?

小智 10

您不必使用其他插件.只需移动问号,即可代替:

$('#myZipField').mask("?99999-9999");
Run Code Online (Sandbox Code Playgroud)

你应该使用:

$('#myZipField').mask("99999?-9999");
Run Code Online (Sandbox Code Playgroud)

毕竟,不是整个字符串是可选的,只是-向前和向前.