首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >仅从输入掩码jquery中的特定号码开始验证电话号码

仅从输入掩码jquery中的特定号码开始验证电话号码
EN

Stack Overflow用户
提问于 2016-07-13 04:50:07
回答 2查看 2.7K关注 0票数 3

我试图验证电话号码如下。61岁以后,应该只从2、3或6开始。例子如下。61-245623463 :有效61-345623456 :有效61-445623423 :无效61-645623485 :有效

我的当前代码如下所示。但它不起作用。

代码语言:javascript
复制
$("#mask_aus_phone").inputmask({mask: "61-2 9999 9999"});
$("#mask_aus_phone").inputmask({mask: "61-3 9999 9999"});
$("#mask_aus_phone").inputmask({mask: "61-6 9999 9999"});

我也尝试了如下。但也不起作用。

代码语言:javascript
复制
$("#mask_aus_phone").inputmask({mask: "61-{2,3,6} 9999 9999"});

谁能帮我验证一下。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-13 04:55:42

您可以将正则表达式输入到输入掩码中:

代码语言:javascript
复制
$('#mask_aus_phone').inputmask('Regex', { 
    regex: "^61-[236]"
});

我使用了regex ^61-[236],但您也可以使用正的前瞻性,并断言61-后面的数字是2、3或6:

代码语言:javascript
复制
^61-(?:(?=[236]).)+

更新:

您没有将其显式化,但如果要将61-后的数字总数限制为9,则可以尝试:

代码语言:javascript
复制
^61-[236]\d{8}$

演示:

Regex101

票数 2
EN

Stack Overflow用户

发布于 2018-04-14 21:46:08

不使用regex,您可以通过最近的电话分机构建一个小字典。

代码语言:javascript
复制
Inputmask.extendAliases({
  my_phone: {
    alias: "abstractphone",
    placeholder: '#',
    showMaskOnFocus: false,
    phoneCodes: [{
      mask: "61-2 #### ####",
      region_name: 'Dois',
      desc_en: "Second region"
    }, {
      mask: "61-3 #### ####",
      region_name: 'Três',
      desc_en: "Third region"
    }, {
      mask: "61-6 #### ####",
      region_name: 'Seis',
      desc_en: "6th region"
    }],
    onKeyValidation: function() {
      let mt = $(this).inputmask("getmetadata");
      $('#jqma span').text(
       mt['region_name']+' - '+mt['desc_en']).css(
       'color', `#${Math.floor(Math.random() *
       0x1000000).toString(16).padStart(6, 0)}`
      );
      console.log(mt);
    }
  }
});
$('#jqma input').inputmask("my_phone");
代码语言:javascript
复制
span {color:#37e;font-weight:bold;transition: color 1s}
代码语言:javascript
复制
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://rawgit.com/RobinHerbots/jquery.inputmask/4.x/dist/inputmask/inputmask.js"></script>
<script src="https://rawgit.com/RobinHerbots/jquery.inputmask/4.x/dist/inputmask/inputmask.extensions.js"></script>
<script src="https://rawgit.com/RobinHerbots/jquery.inputmask/4.x/dist/inputmask/inputmask.phone.extensions.js"></script>
<script src="https://rawgit.com/RobinHerbots/jquery.inputmask/4.x/dist/inputmask/jquery.inputmask.js"></script>
<script src="https://rawgit.com/RobinHerbots/jquery.inputmask/4.x/dist/inputmask/phone-codes/phone.js"></script>

<p id="jqma"><label>Extended phone alias: <input placeholder="61-# #### ####"/></label> <span/>
</p>

这个动态验证器示例是基于这个答案。解释如下:

  • 电话分机类似于一个抽象工厂,它通过alias: "abstractphone"引用;
  • phone.js“实现”别名phone,它具有预定义的规则,例如仅数字/整数掩码(如果世界上大多数电话号码对该输入有效,这就足以验证所有输入:$('#mask_aus_phone').inputmask('phone'));
  • 通过使用别名属性abstractphone扩展别名,可以定义几个包含特定掩码的项,其中包含相关元数据,在验证时可以动态获取这些元数据。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38342863

复制
相关文章

相似问题

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