作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前我对各种掩码格式使用 jquery.maskedinput,但它不适用于电话号码。
在巴西,我们过去的所有数字都采用 (99)9999-9999 格式。但最近,在一些城市,手机使用的是 (99)99999-9999,而他们的普通手机和全国其他地区的手机仍然使用 (99)9999-9999。
jquery.maskedinput 似乎不支持同一输入的 2 种格式,其中字符串中间的字符可能存在也可能不存在。正如我在其文档中看到的那样,我可以使用 (99)9999-9999 和 (99)9999-99999,但这会使用户感到困惑。
是否有任何其他掩码插件/框架允许我验证 (99)9999-9999 和 (99)99999-9999?
编辑:我使用 harry 和 Dmitrii 解决方案创建了一个完整测试:http://jsfiddle.net/NSd6g/ $('#full').inputmask('(99)9999[9]-9999');
我会再等一会儿,看看是否能找到更好的解决方案。完美的不需要红色信息,第二组默认有 4 位数字。并且,如果第三组获得第五位数字,则只有第二组才能获得第五位,将第三组的第一位数字移至第二组的第五位数字。大声笑有点难以理解,抱歉!
最佳答案
您可以使用 jquery.inputmask 实现此目的很简单:
jQuery(function($) {
$('#test').inputmask('(99)9999[9]-9999');
});
试试这个 demo .
要在输入时跳过可选部分,您需要在掩码中的可选部分后面输入空格或字符(本例中为连字符)。
关于巴西电话号码的 JavaScript 掩码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14853453/
我是一名优秀的程序员,十分优秀!