首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何更改此掩码javascript函数以避免从零开始?

如何更改此掩码javascript函数以避免从零开始?
EN

Stack Overflow用户
提问于 2017-08-21 00:40:49
回答 1查看 1.4K关注 0票数 0

请在哪里更改这个掩码函数,以避免用户输入0(0)作为第一个数字?

这是一个掩码函数,用于以这种格式格式化输入:

代码语言:javascript
复制
(99) 9999-9999 or (99) 99999-9999

在巴西,赛尔电话现在有9位数,普通电话有8位数。但城市代码(括号之间)不能以0(0)开头,否则会弄糟电话号码。

代码语言:javascript
复制
// telefone com 9 digitos           
var SPMaskBehavior = function (val) {
  return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
},
spOptions = {
  onKeyPress: function(val, e, field, options) {
      field.mask(SPMaskBehavior.apply({}, arguments), options);
    }
};

$('#telefone').mask(SPMaskBehavior, spOptions);

这是掩码链接

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 01:09:36

如果输入的第一个数字是零..。

这很容易使用简单的if条件进行检查。

您只需要检查值的第二个字符,首先是(

如果是零,移除它..。然后,选择通知用户。

代码语言:javascript
复制
// telefone com 9 digitos           
var SPMaskBehavior = function (val) {
  return val.replace(/\D/g, '').length === 11 ? '(00) 00000-0000' : '(00) 0000-00009';
},
    spOptions = {
      onKeyPress: function(val, e, field, options) {
        if(field.val()=="(0"){
          console.log("NO! No zero to begin.");
          field.val(field.val().substr(0,1)); // Removes the 0
        }
        field.mask(SPMaskBehavior.apply({}, arguments), options);
      }
    };

$('#telefone').mask(SPMaskBehavior, spOptions);
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.11/jquery.mask.min.js"></script>

<input id="telefone">

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45788060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档