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