java - 如何验证电话号码

标签 java

我正在尝试在 java 中验证电话号码。在我的国家,电话号码要么以 9 开​​头,要么以 8 开头,而且只有 8 个数字。我已经做了

try {
   Integer.parseInt(phoneNo);
}
catch (NumberFormatException e)  {
    msg += "Plese enter amount in Integers.\n";
}
if (phoneNo.length() == 0)
   msg += "Please Enter Phone Number.\n";
if (phoneNo.length() != 8)
    msg += "Invalid Phone Number.\n";   

但是,当数字的第一位不是 9 或 8 时,我需要进行验证。我不完全确定我应该怎么做。请解释您的代码是如何工作的,因为我是一名学生并且正在努力学习。

最佳答案

以防万一您正在寻找正则表达式解决方案。

您可以使用以下模式 ^(?=(?:[8-9]){1})(?=[0-9]{8}).* 来执行支票。

本质上它的作用是;

  1. 从第一个字符位置 ^
  2. 向前看,看看第一个字符是 8 还是 9 (?=(?:[8-9]){1})
  3. 然后看是否一共有8位(?=[0-9]{8})
  4. 如果以上条件匹配,则将其标记为匹配 .*


public static void main(String[] args) {

    String telephoneNr = "88765432";

    if (telephoneNr.matches("^(?=(?:[8-9]){1})(?=[0-9]{8}).*")) {
        System.out.println("Valid phone number!");
    }
    else {
        System.out.println("Invalid!");
    }
}

输出:

Valid phone number!

关于java - 如何验证电话号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38800027/

相关文章:

java - 首选自定义键盘(如果有)

java - 我可以从 UNIX shell 检查 JNI 版本吗?

java - 意外的 toString 结果

Java 枚举 : get FieldName knowing its value

java - 从具有对象 "Field"的私有(private)字段获取值。 java

java - 有没有办法隐藏键盘而不失去EditText的焦点

java - 在 "strong"代码语言中重新分配变量类型/值

java - 为什么编译这个接口(interface)方法时会收到 "cannot find symbol"错误?

java - Maven 3.0.5 和 IntelliJ 12 构建两个 jar 文件

java - 将 main() 添加到 Java 类时出现问题