JAVA利用正则表达式判断手机号是否合法
时间: 2023-07-12 17:15:15 浏览: 150
可以使用Java的正则表达式来判断手机号是否合法。以下是一个示例代码,可以匹配中国大陆的手机号码:
```java
public static boolean isPhoneNumberValid(String phoneNumber) {
String regex = "^1[3456789]\\d{9}$";
return phoneNumber.matches(regex);
}
```
在这个正则表达式中:
- `^` 表示字符串的开头;
- `1` 表示手机号的第一位必须是数字1;
- `[3456789]` 表示手机号的第二位可以是3、4、5、6、7、8、9中的任意一个;
- `\\d{9}` 表示手机号的后9位必须是数字;
- `$` 表示字符串的结尾。
因此,这个正则表达式可以匹配符合条件的手机号。如果传入的手机号符合这个正则表达式,那么 `matches()` 方法将返回 `true`,否则返回 `false`。
相关问题
JAVA利用正则表达式判断手机号是否合法,要求有输入流
可以使用Java的正则表达式库和输入流来实现手机号的合法性判断。以下是一个示例代码:
```java
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class PhoneValidation {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入手机号码:");
String phoneNumber = scanner.nextLine();
scanner.close();
if (isValidPhoneNumber(phoneNumber)) {
System.out.println("手机号码合法。");
} else {
System.out.println("手机号码不合法。");
}
}
public static boolean isValidPhoneNumber(String phoneNumber) {
// 定义手机号码的正则表达式
String regex = "^1[3-9]\\d{9}$";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(phoneNumber);
return matcher.matches();
}
}
```
在上述代码中,首先通过 `Scanner` 类从标准输入流中读取用户输入的手机号码,然后将该手机号码作为参数传递给 `isValidPhoneNumber` 方法进行合法性判断。该方法中使用了正则表达式来定义手机号码的合法格式,然后使用 `Pattern` 类的 `compile` 方法将该正则表达式编译成模式,再使用 `Matcher` 类的 `matches` 方法来匹配手机号码和模式。最后,如果匹配成功,则返回 `true`,否则返回 `false`。
java正则判断11位手机号码_Java正则表达式判断手机号的例子
Java正则表达式判断手机号的例子:
```java
public static boolean isPhoneNumber(String phone) {
String regex = "^1[3|4|5|6|7|8|9]\\d{9}$";
return Pattern.matches(regex, phone);
}
```
上面的代码中,使用了正则表达式 `^1[3|4|5|6|7|8|9]\\d{9}$` 来判断手机号是否合法。其中:
- `^` 表示字符串的开头
- `1` 表示手机号的第一位必须是1
- `[3|4|5|6|7|8|9]` 表示手机号的第二位必须是3、4、5、6、7、8或9中的一个
- `\\d{9}` 表示手机号的后9位必须是数字
- `$` 表示字符串的结尾
如果需要判断是否为11位手机号,可以稍微修改一下正则表达式,如下所示:
```java
public static boolean isElevenPhoneNumber(String phone) {
String regex = "^1[3|4|5|6|7|8|9]\\d{8}\\d$";
return Pattern.matches(regex, phone);
}
```
其中,`\d{8}\\d` 表示手机号必须是11位数字。