一尘不染

Flutter-使用Regex验证电话号码

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;
  }

我该如何解决?


阅读 922

收藏
2020-08-13

共1个答案

一尘不染

您可以使第一部分为可选,匹配a +或0,然后匹配9。然后匹配10位数字:

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

正则表达式演示

2020-08-13