gpt4 book ai didi

java - java中的正则表达式验证电话号码不起作用

转载 作者:太空宇宙 更新时间:2023-11-04 11:12:06 24 4
gpt4 key购买 nike

我想编写一个以下等级,该以下电话号码可以写入以下内容:237 698888888或+237 65888888或6788888或67883888 ...,实际上,电话号码必须尊重以下条件(+237 | 237 | 237)'space'(6 | 2 | 2)

如果用户有意输入带前缀的号码,则前缀必须为 237 或 +237,否则他决定输入不带前缀的号码,在这种情况下,他必须输入 9 位数字,第一位数字必须为 6 或 2,第二位数字必须介于 2,3,5,6,7,8 和 9 之间;剩下的 7 位数字即 [0-9] {7}。这是我的java代码:

String regex = "(\\+237|237)\" \"(6|2)(2|3|[5-9])[0-9]{7}";
String sPhoneNumber = "237 278889999";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(sPhoneNumber);
if (matcher.matches()) {
Log.e("|==FILTER_NUM==>>","Phone Number Valid");
}
else
{
Log.e("|==FILTER_NUM==>>","Phone Number must be in the form XXX XXXXXXXX");
}

返回这个

E/|==FILTER_NUM==>>: Phone Number must be in the form XXX XXXXXXXX

请检查我的代码并告诉我出了什么问题

请原谅我的英语:)

最佳答案

你的正则表达式

(\\+237|237)\" \"(6|2)(2|3|[5-9])[0-9]{7}

您在其中使用了空格。使用 \\s 来检测一个空格。

你也可以简化这个

\\+237|237

\\+?(237)

最终的正则表达式将如下所示

(\\+?(237))\\s(6|2)(2|3|[5-9])[0-9]{7}

关于java - java中的正则表达式验证电话号码不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45879766/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com