ava.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。
它包括两个类:Pattern和Matcher
Pattern: 一个Pattern是一个正则表达式经编译后的表现模式。
Matcher :一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。
首先用Pattern创建一个正则表达式:
(Pattern类用于创建一个正则表达式,也可以说创建一个匹配模式,它的构造方法是私有的,不可以直接创建,但可以通过Pattern.complie(String regex)简单工厂方法创建一个正则表达式)
Pattern p = Pattern.compile("^((14[0-9])|(13[0-9])|(15[0-9])|(18[0-9])|(17[0-9]))\\d{8}$");
这里代表电话号码必须以14、13、15、18、17开头的11位数,可以根据自己的需求进行修改
然后用Matcher的boolean matches() 方法对整个目标字符展开匹配检测,只有整个目标字符串完全匹配时才返回真值。
Matcher m = p.matcher(inputText);
最后返回一个boolean用来判断是否为true
return m.matches();
最后贴出完整代码:
public class Utils {
/**
* 判断电话号码是否符合格式.
*
* @param inputText the input text
* @return true, if is phone
*/
public static boolean isPhone(String inputText) {
Pattern p = Pattern.compile("^((14[0-9])|(13[0-9])|(15[0-9])|(18[0-9])|(17[0-9]))\\d{8}$");
Matcher m = p.matcher(inputText);
return m.matches();
}
String userphone = phone.getText().toString().trim();
if (TextUtils.isEmpty(userphone)) {
Toast.makeText(LoginActivity.this, "请输入手机号", Toast.LENGTH_SHORT).show();
return;
}
boolean result = Utils.isPhone(userphone);
if (result == false) {
Toast.makeText(LoginActivity.this, "请输入正确的手机号", Toast.LENGTH_SHORT).show();
return;
}