javascript - 检测不同语言的联系号码

标签 javascript angularjs regex

我有一个正则表达式,可以识别联系号码是否有效,但如果联系号码使用不同的语言,则该正则表达式不起作用。

正则表达式:

return /^(\+?(\d{1,3}))?[-.\s]?\(?[0-9]\d{2}\)?[-.\s]?\d{3}[-.\s]?\d{4}/.test(contactString);

数量:

Normal format: +91 9838 838 7373
Different Language (Arabic): +٩١ ٩٨٣٨ ٨٣٨ ٧٣٧٣  

现在我如何检测该阿拉伯语联系号码是否有效。

最佳答案

此表达式将匹配所有 unicode 数字。可以将其想象为使用类固醇的 \d:

[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-​​\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]

我们可以使用该表达式来匹配示例中的两个电话号码。

该表达式正在执行以下测试:

  • 需要 4 组空格分隔的数字
  • 每组数字的长度可以是 2 到 4 个字符

(?:[0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66 -\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-​​\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090 -\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50 -\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]{2,4}( ?: |$)){4}

现场演示: https://regex101.com/r/jV5iQ5/1

关于javascript - 检测不同语言的联系号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38248801/

相关文章:

javascript - 如何在 mvc 4 中将 javascript 变量放入 View 中?

javascript - Cloudinary Base64图像在angularjs中上传

php 获取函数的内容 - 正则表达式可能吗?

javascript - 正则表达式 : Array Match

javascript - 如何在 React JS 中将 Image-Url 分享到 Facebook、Twitter 和 Instagram

javascript - 如何保证邀请码在Redis中是唯一的

javascript - 返回顶部按钮不隐藏

javascript - 如何在 ng-repeat 中格式化 ng-model 日期?

javascript - phantomjs 无法正确显示 Angular 数据

MySQL - 正则表达式搜索在找到匹配行时正常工作,否则不正常