正则表达式支持免费电话号码和阿联酋号码

Syed Fasih |

我有一个正则表达式可以验证阿联酋的数字,例如:00971585045336这是正则表达式: /00971(?:50|51|52|53|54|55|56|57|58|59|2|3|4|6|7|9)\d{7}$/

我需要添加对免费电话号码的支持,如:00971800382499530097180022988

我对正则表达式不好,因此我需要帮助以使其成为可能。提前致谢。

彼得·托尼

您可以使用以下正则表达式,假设免费工具编号格式为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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

阿联酋电话号码正则表达式

来自分类Dev

REGEX表达式以排除免费电话号码

来自分类Dev

REGEX表达式以排除免费电话号码

来自分类Dev

如何将免费电话号码分为号码和分机号?

来自分类Dev

在电话号码正则表达式中添加电话号码分机

来自分类Dev

Perl电话号码正则表达式

来自分类Dev

正则表达式与荷兰电话号码

来自分类Dev

正则表达式用于拆分电话号码

来自分类Dev

提取电话号码正则表达式

来自分类Dev

匹配电话号码,正则表达式

来自分类Dev

正则表达式的电话号码?

来自分类Dev

特定电话号码正则表达式

来自分类Dev

电话号码正则表达式

来自分类Dev

瑞典电话号码正则表达式

来自分类Dev

正则表达式-电话号码-Android

来自分类Dev

正则表达式红宝石电话号码

来自分类Dev

法国电话号码的正则表达式

来自分类Dev

正则表达式验证电话号码扩展

来自分类Dev

使用正则表达式清理电话号码

来自分类Dev

荷兰电话号码的正则表达式

来自分类Dev

电话号码的正则表达式

来自分类Dev

正则表达式的电话号码?

来自分类Dev

MVC 5正则表达式电话号码

来自分类Dev

正则表达式寻找好的电话号码

来自分类Dev

电话号码匹配正则表达式

来自分类Dev

用于电话号码验证的正则表达式

来自分类Dev

日本电话号码的正则表达式

来自分类Dev

正则表达式识别电话号码

来自分类Dev

电话号码以 + 开头的正则表达式