如何检查电话号码格式是否有效从电话管理器?

Pre*_*eti 5 java validation android

为了检查电话号码(我有模式电话号码,如+918172014908)验证我使用libphonenumber.jar文件..它根据国家/地区是否有效检查电话号码.我用这个: -

 PhoneNumberUtil phoneUtil = PhoneNumberUtil.getInstance(); 
         PhoneNumber numberProto = phoneUtil.parse("phone_number", "");  
        phoneUtil.isValidNumber(numberProto) == true ? "valid" : "phone no not valid"
Run Code Online (Sandbox Code Playgroud)

它的工作正常.但这个jar文件占用了一点内存..有没有另一种方法来检查电话号码格式验证没有libphonenumber.jar ??? 你能提出什么建议吗???

QAr*_*rea 9

这个答案可能会对您有所帮助:https: //stackoverflow.com/a/5959341

要验证字符串,请使用

if (setNum.matches(regexStr))
where regexStr can be:

//matches numbers only
String regexStr = "^[0-9]*$"

//matches 10-digit numbers only
String regexStr = "^[0-9]{10}$"

//matches numbers and dashes, any order really.
String regexStr = "^[0-9\\-]*$"

//matches 9999999999, 1-999-999-9999 and 999-999-9999
String regexStr = "^(1\\-)?[0-9]{3}\\-?[0-9]{3}\\-?[0-9]{4}$" 
Run Code Online (Sandbox Code Playgroud)

有一个很长的正则表达式来验证美国的手机(7到10位数,允许扩展等).源自此答案:用于电话号码验证的全面正则表达式

String regexStr = "^(?:(?:\\+?1\\s*(?:[.-]\\s*)?)?(?:\\(\\s*([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9])\\s*\\)|([2-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\\s*(?:[.-]\\s*)?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\\s*(?:[.-]\\s*)?([0-9]{4})(?:\\s*(?:#|x\\.?|ext\\.?|extension)\\s*(\\d+))?$"
Run Code Online (Sandbox Code Playgroud)