仅在输入掩码 jquery 中从特定数字开始验证 phone 数字
Validate phone number with starting from certain number only in inputmask jquery
我正在尝试验证 phone 号码,如下所示。 61 之后应该只从 2 或 3 或 6 开始。例子如下。
61-245623463 : 有效
61-345623456 : 有效
61-445623423:无效
61-645623485 : 有效
我目前的代码如下。但是没用。
$("#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"});
我也试过如下。但这也行不通。
$("#mask_aus_phone").inputmask({mask: "61-{2,3,6} 9999 9999"});
谁能帮我验证一下。
您可以将正则表达式输入掩码:
$('#mask_aus_phone').inputmask('Regex', {
regex: "^61-[236]"
});
我使用了正则表达式 ^61-[236]
,但您也可以使用正向预测并断言 61-
后面的数字是 2、3 或 6:
^61-(?:(?=[236]).)+
更新:
你没有说清楚,但是如果你想把61-
后面的总位数限制在9位,那么你可以试试:
^61-[236]\d{8}$
演示:
不使用regex,可以通过最近的phone extension:
建立一个小词典
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");
span {color:#37e;font-weight:bold;transition: color 1s}
<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>
这个动态验证器示例是 based in this answer。解释如下:
- phone 扩展类似于 Abstract Factory,通过
alias: "abstractphone"
; 引用
phone.js
"implements" 别名 phone
,它有预定义的规则,例如 numeric/integer 只有掩码(如果世界上大多数 phone 号码都有效对于该输入,这足以验证它们:$('#mask_aus_phone').inputmask('phone')
);
- 通过使用别名 属性
abstractphone
扩展别名,可以定义多个项目,其中包含具有相关 元数据 的特定掩码,当正在验证。
我正在尝试验证 phone 号码,如下所示。 61 之后应该只从 2 或 3 或 6 开始。例子如下。 61-245623463 : 有效 61-345623456 : 有效 61-445623423:无效 61-645623485 : 有效
我目前的代码如下。但是没用。
$("#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"});
我也试过如下。但这也行不通。
$("#mask_aus_phone").inputmask({mask: "61-{2,3,6} 9999 9999"});
谁能帮我验证一下。
您可以将正则表达式输入掩码:
$('#mask_aus_phone').inputmask('Regex', {
regex: "^61-[236]"
});
我使用了正则表达式 ^61-[236]
,但您也可以使用正向预测并断言 61-
后面的数字是 2、3 或 6:
^61-(?:(?=[236]).)+
更新:
你没有说清楚,但是如果你想把61-
后面的总位数限制在9位,那么你可以试试:
^61-[236]\d{8}$
演示:
不使用regex,可以通过最近的phone extension:
建立一个小词典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");
span {color:#37e;font-weight:bold;transition: color 1s}
<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>
这个动态验证器示例是 based in this answer。解释如下:
- phone 扩展类似于 Abstract Factory,通过
alias: "abstractphone"
; 引用
phone.js
"implements" 别名phone
,它有预定义的规则,例如 numeric/integer 只有掩码(如果世界上大多数 phone 号码都有效对于该输入,这足以验证它们:$('#mask_aus_phone').inputmask('phone')
);- 通过使用别名 属性
abstractphone
扩展别名,可以定义多个项目,其中包含具有相关 元数据 的特定掩码,当正在验证。