验证手机和 phone 号码 - 外部系统

Validate mobile and phone number - outsystems

我有一个手机号码字段,我想检查它是否有 任何数字重复 9 次,包括零和如果 任何 phone 号码或手机号码仅由两个不同的数字组成。

是否有任何正则表达式或其他东西可以做到这一点?

在葡萄牙 phone 号码以 2######## 开头,手机号码以 91/92/93/96 开头,均为 9 位数。

此正则表达式将仅匹配后面以 2 或 91、92、93、96 开头的 9 个数字

^(?:2\d|9[1236])[0-9]{7}$

^ = 字符串开头

(?:2\d|9[1236]) = 2 + 任意数字 OR 9 后跟 1,2,3 或 6

[0-9]{7} = 7 个数字

$ = 字符串结尾

试试这个正则表达式:

^(?:(?:(2)([013-9])|(9)([1236]))(?!(?:|){7})(?!(?:|){7})\d{7}|(?=2{2,7}([^2])(?!(?:2|)+\b))22\d{7})\b

Regex live here.

解释:

^                              # from start
(?:                            # look at (?:...) as subsets
  (?:                          # 
    (2)([013-9])|(9)([1236])   # store possible digits in groups    
  )                            #
  (?!(?:|){7})             # in front cannot repeat only  
  (?!(?:|){7})             # neither only  
  \d{7}                        # plus seven digits to complete nine
|                              # or
  (?=                          # to avoid number repetitions:
    2{2,7}([^2])               # in front should be possible to match
                               # the number 2 from 2 to seven times 
                               # and another digit stored in 
    (?!(?:2|)+\b)            # but not only them,
                               # so, should match another digit 
                                   # (not two or the ) till the boundary
  )                            #
  22\d{7}                      # then, it refers to 22 and 7 digits = nine
)\b                            # confirm it don't overflows nine digits

希望对您有所帮助。