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

标签 java android validation

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

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

它工作正常..但是这个 jar 文件需要一点内存.. 有没有另一种方法可以在没有 libphonenumber.jar 的情况下检查电话号码格式验证??? 你能建议点什么吗???

最佳答案

此答案可能对您有所帮助: 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}$" 

在美国有一个非常长的正则表达式来验证电话(7 到 10 位数字,允许分机等)。来源来自这个答案:A comprehensive regex for phone number validation

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+))?$"

关于java - 如何从电话管理器中检查电话号码格式是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25763935/

相关文章:

c# - 具有属性和方法的内存类生成

java - 向错误的端点发出请求

Rhodes 4.0.0 Android 构建失败

javascript - 仅当在文本字段中输入正确的单词时,如何才能使链接起作用?

php - 检查用户名和电子邮件已经存在于php mysql中

java - hibernate 5.4.12.Final "The attribute cacheable is undefined for the annotation type NamedQuery",是否不支持cacheable = true?

java - Android 翻译的 Canvas 矩形碰撞

java - Scala 参数传递给 Java (Play Framework)

java - 当 jsonResponse 从 mySQL-DB 获取空数据时没有任何反应

jsf - 如何通过ajax验证两个密码字段?