Java 使用正则表达式验证美国电话号码

Java 使用正则表达式验证美国电话号码,java,regex,phone-number,Java,Regex,Phone Number,在我的android项目中,我需要验证用户输入的手机号码。手机号码的格式可以是(456)123-1234。手机号码的第一个字符始终必须是4、5或6。我尝试了此正则表达式。但失败了。这是我尝试的正则表达式 "\\([4-6]{1}[0-9]{2}\\)[0-9]{3}\\-[0-9]{4}$"; 谁能帮帮我!提前谢谢 我用这个正则表达式解决了这个问题: PHONE_REGEX ="\\([4-6]{1}[0-9]{2}\\) [0-9]{3}\\-[0-9]{4}$"; 与您的格式匹配的正则表

在我的android项目中,我需要验证用户输入的手机号码。手机号码的格式可以是(456)123-1234。手机号码的第一个字符始终必须是4、5或6。我尝试了此正则表达式。但失败了。这是我尝试的正则表达式

"\\([4-6]{1}[0-9]{2}\\)[0-9]{3}\\-[0-9]{4}$";
谁能帮帮我!提前谢谢

我用这个正则表达式解决了这个问题:

PHONE_REGEX ="\\([4-6]{1}[0-9]{2}\\) [0-9]{3}\\-[0-9]{4}$";

与您的格式匹配的正则表达式:

(456)123-1234  (starting with only 4,5 or 6)
将是:

^\([4-6]{1}[0-9]{2}\)[0-9]{3}-[0-9]{4}$
例如:

如果您想在右括号后留出一个可选空格,即:

(456)123-1234

您可以稍微修改regex,如下所示:

^\([4-6]{1}[0-9]{2}\)\s?[0-9]{3}-[0-9]{4}$

您应该知道,北美地区的区号作为北美编号计划的一部分共享美国格式,但不与美国电话运营商共享费率结构。例如波多黎各、多米尼加共和国、加拿大等


如果您使用此正则表达式来阻止长途电话的出站呼叫,您需要一个特定的白名单或黑名单——如果您依赖正则表达式,您可能会有一些昂贵的惊喜。

您收到您的电子邮件了吗answersyes@Digvesh帕特尔..现在你能告诉我如何从stringstr=str.replaceAll(“\\D+”,”)中只获取数字字符吗;我可以知道D代表什么吗
^\([4-6]{1}[0-9]{2}\)\s?[0-9]{3}-[0-9]{4}$