package ks;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
*
*
* @author Hj
*
*/
public class test {
public static void main(String[] args) {
List <String> list=new ArrayList<String>();
List <String> numbers=new ArrayList<String>();
numbers.add("138 1234 1234");
numbers.add("13812345abc");
numbers.add("13812345678");
numbers.add("138 1234 5678");
numbers.add("98765432101");
for (int i=0;i<numbers.size();i++){
String test=isMobiPhoneNum(numbers.get(i).replaceAll("\\s*", ""));
if(list.contains(numbers.get(i).replaceAll("\\s*", ""))){
System.out.println("此手機號已經被其他用戶註冊");
}else if("1".equals(test)){
System.out.println("通過此手機號註冊成功");
list.add(numbers.get(i).replaceAll("\\s*", ""));
}else if ("2".equals(test)){
System.out.println("此手機號碼爲中國大陸非法手機號碼");
}else{
System.out.println("手機號無法註冊,爲非法手機號");
}
}
}
public static String isMobiPhoneNum(String telNum){
String regex = "^\\d{0,11}$";
String regexCh = "^((13[0-9])|(15[0-9])|(18[0-9]))\\d{8}$";
Pattern pCh = Pattern.compile(regexCh,Pattern.CASE_INSENSITIVE);
Matcher mCh = pCh.matcher(telNum);
Pattern p = Pattern.compile(regex,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(telNum);
boolean a=m.matches();
boolean b=mCh.matches();
if(m.matches()&&mCh.matches()){ //通過
return "1";
}else if(m.matches()&&!mCh.matches()){ //非大陸
return "2";
}else{ //不通過
return "3";
}
}
}
運行結果爲: