android - Flutter - 使用正则表达式验证电话号码

在我的 Flutter 移动应用中,我尝试使用 regex 验证电话号码。以下是条件。

  1. 电话号码必须包含 10 位数字。
  2. 如果我们使用国家代码,它可以是 12 位数字。 (例如国家代码:+12、012)
  3. 数字之间不能有空格或字符

简单来说,这里是唯一“有效”的电话号码

0776233475+94776233475094776233475

以下是我尝试过的,但它不起作用。

String _phoneNumberValidator(String value) {
    Pattern pattern =
        r'/^\(?(\d{3})\)?[- ]?(\d{3})[- ]?(\d{4})$/';
    RegExp regex = new RegExp(pattern);
    if (!regex.hasMatch(value))
      return 'Enter Valid Phone Number';
    else
      return null;
  }

我该如何解决这个问题?

最佳答案

您可以使第一部分可选匹配 + 或 0 后跟 9。然后匹配 10 个数字:

^(?:[+0]9)?[0-9]{10}$
  • ^ 字符串开始
  • (?:[+0]9)? 可选择匹配 +0 后跟 9
  • [0-9]{10} 匹配 10 位数字
  • $ 字符串结束

Regex demo

https://stackoverflow.com/questions/55552230/

相关文章:

dart - 使用 Navigator.popUntil 和没有固定名称的路由

android - Flutter Launcher 图标没有改变?

flutter - 如何将小部件动态添加到 Flutter 中的列?

image - Flutter:如何将 Canvas/CustomPainter 保存到图像文件中?

android - Flutter - Image.network 失败时的默认图像

dart - Flutter Navigator.replace() 示例

dart - 如何将背景图像添加到 flutter 应用程序?

dart - 添加点击功能 flutter

flutter - 无法访问 flutter.dev (Mac OS)

amazon-web-services - 如何在不使用原生 SDK 的情况下使用 AWS Cogn