用于以特定顺序验证电话号码的正则表达式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用于以特定顺序验证电话号码的正则表达式相关的知识,希望对你有一定的参考价值。

[嗨,我正在尝试验证代码中的电话号码。验证数字是否无效,如果它按以下任一顺序-

111-111-1111
333-333-3333
444-444-4444
123-123-1234
123-456-7890

除上述以外的任何数字(按此顺序xxx-xxx-xxxx)是有效的,不应被验证。我提出了此正则表达式来验证前三个序列

^([0-9])\12\13\14$

任何领导都会有很大帮助。

答案

一种简单的解决方案是保留序列号/号码受限制的List,然后检查电话号码是否属于List

执行以下操作:

import java.util.List;

public class Main 
    public static void main(String[] args) 
        List<String> restrictedList = List.of("111-111-1111", "333-333-3333", "444-444-4444", "123-123-1234",
                "123-456-7890");
        String[] testNumbers =  "444-444-4544", "444-444-4444", "121-111-1111", "333-343-3333", "123-123-1234",
                "123-456-7890", "123-465-7890", "213-123-1234", "1234567890", "111-111-1111", "a1b2c3d4e5",
                "333-333-3333", "223-334-4445", "2134-12-4321", "100-200-3000", "011-243-7234" ;
        for (String number : testNumbers) 
            if (number.matches("[1-9]1[0-9]2-[0-9]3-[0-9]4") && !restrictedList.contains(number)) 
                System.out.println(number + " is valid.");
             else 
                System.out.println(number + " is invalid.");
            
        
    

输出:

444-444-4544 is valid.
444-444-4444 is invalid.
121-111-1111 is valid.
333-343-3333 is valid.
123-123-1234 is invalid.
123-456-7890 is invalid.
123-465-7890 is valid.
213-123-1234 is valid.
1234567890 is invalid.
111-111-1111 is invalid.
a1b2c3d4e5 is invalid.
333-333-3333 is invalid.
223-334-4445 is valid.
2134-12-4321 is invalid.
100-200-3000 is valid.
011-243-7234 is invalid.

注意:我已将[1-9]1[0-9]2-[0-9]3-[0-9]4用作电话号码的格式,假设第一位数字不能为0

以上是关于用于以特定顺序验证电话号码的正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

js 常用正则表达式表单验证代码

js正则表达式电话号码验证

2019手机号码JS正则表达式验证实例代码

需要一个js正则 手机与电话都可以验证的

求一个正则表达式,既验证固定电话也验证手机号码!

身份证号码验证正则表达式及用法(包括:位数规则等)