我正在尝试在 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}).*
来执行支票。
本质上它的作用是;
- 从第一个字符位置
^
- 向前看,看看第一个字符是 8 还是 9
(?=(?:[8-9]){1})
- 然后看是否一共有8位
(?=[0-9]{8})
- 如果以上条件匹配,则将其标记为匹配
.*
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/