我有一个正则表达式可以验证阿联酋的数字,例如:00971585045336这是正则表达式: /00971(?:50|51|52|53|54|55|56|57|58|59|2|3|4|6|7|9)\d{7}$/
我需要添加对免费电话号码的支持,如:0097180038249953或0097180022988
我对正则表达式不好,因此我需要帮助以使其成为可能。提前致谢。
您可以使用以下正则表达式,假设免费工具编号格式为00971800,后接5或8位数字。原始正则表达式通过字符类得以简化。测试显示4个有效数字,然后是无效数字:
const regex = /^00971((5\d|[234679])\d{7}|800(\d{5}|\d{8}))$/;
[
'00971581234567',
'0097171234567',
'0097180012345',
'0097180012345678',
'0097158123456',
'009715812345678',
'009717123456',
'00971712345678',
'00971800123456',
'009718001234567',
].forEach((str) => {
let valid = regex.test(str);
console.log(str + ' ==> ' + valid);
});
输出:
00971581234567 ==> true
0097171234567 ==> true
0097180012345 ==> true
0097180012345678 ==> true
0097158123456 ==> false
009715812345678 ==> false
009717123456 ==> false
00971712345678 ==> false
00971800123456 ==> false
009718001234567 ==> false
解释:
^
-字符串开始00971
-期待文字文字(
-起始组,用于逻辑或
(
-起始组,用于逻辑或
5\d
-期望a 5
,后跟一个数字|
- 或者[234679]
-带有允许的单个字符的字符类)
-小组结束\d{7}
-7位数|
- 或者800
-文字(
-起始组,用于逻辑或
\d{5}
-5位数|
- 或者\d{8}
-8位数字)
-小组结束)
-小组结束$
-字符串结尾本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句