PhoneUtil
package cn.fraudmetrix.octopus.horai.biz.utils; import org.springframework.util.StringUtils; import java.util.regex.Matcher;
import java.util.regex.Pattern; /**
* Author: hunt
* Date: 2016-11-17 00:15
* Version: 1.0.0
*/
public class PhoneUtils {
/**
* 是否是手机
*
* @param number
* @return
*/
public static boolean isPhoneNumber(String number) {
String rgx = "^(0|86|\\+86|086)?1[34578]\\d{9}$";
Pattern p = Pattern.compile(rgx);
Matcher m = p.matcher(number);
return m.matches();
} /**
* 是否是固话
*
* @param number
* @return
*/
public static boolean isFixNumber(String number) {
String rgx = "^(010|02\\d|0[3-9]\\d{2})?\\d{6,8}$";
Pattern p = Pattern.compile(rgx);
Matcher m = p.matcher(number);
return m.matches();
} /**
* 格式话电话号码
*
* @param originNumber
* @return
*/
public static String getFormatPhoneNumer(String originNumber) {
String formatNumber = originNumber;
if (PhoneUtils.isPhoneNumber(originNumber)) {
formatNumber = originNumber.substring(originNumber.length() - 11, originNumber.length());
} else if (originNumber.startsWith("+86")) {
formatNumber = originNumber.substring(3);
}
return formatNumber;
} /**
* 根据号码获得运营商名称
*
* @param phone
* @return
*/
public static String getCarrier(String phone) {
String ydRgx = "^1(3[4-9]|47|5[0-27-9]|78|8[2-47-8])\\d{8}$";
String ltRgx = "^1(3[0-2]|45|5[56]|7[156]|8[56])\\d{8}$";
String dxRgx = "^1(33|49|53|7[37]|8[019])\\d{8}$";
String carrier = "";
if (phone.matches(ydRgx)) {
carrier = "移动";
} else if (phone.matches(ltRgx)) {
carrier = "联通";
} else if (phone.matches(dxRgx)) {
carrier = "电信";
}
return carrier;
} /**
* 获取手机类别:手机号码、固定电话、亲情号码、其他号码
*
* @param phone
* @return
*/
public static String getPhoneType(String phone) {
String phoneType = "其它号码";
if (!StringUtils.isEmpty(phone)) {
if (isFixNumber(phone)) {
phoneType = "固定电话";
} else if (isPhoneNumber(phone)) {
phoneType = "手机号码";
}
}
return phoneType;
} public static void main(String[] args) {
String number = "8618435697926";
System.out.println(PhoneUtils.isPhoneNumber(number));
number = "+8618668233542";
String formatStr = PhoneUtils.getFormatPhoneNumer(number);
System.out.println(formatStr);
System.out.println(isFixNumber("0688904000"));
}
}
PhoneUtil的更多相关文章
- 项目实战工具类(一):PhoneUtil(手机信息相关)
可以使用的功能: 1.获取手机系统版本号 2.获取手机型号 3.获取手机宽度 4.获取手机高度 5.获取手机imei串号 ,GSM手机的 IMEI 和 CDMA手机的 MEID. 6.获取手机sim卡 ...
- (转载)项目实战工具类(一):PhoneUtil(手机信息相关)
项目实战工具类(一):PhoneUtil(手机信息相关) 可以使用的功能: 1.获取手机系统版本号 2.获取手机型号 3.获取手机宽度 4.获取手机高度 5.获取手机imei串号 ,GSM手机的 ...
- 使用jxl,poi读取excel文件
作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...
- Android手机上判断网络运营商
我们想获取手机的运营商信息.通常都会去调用系统的TelephonyManager类的取数据.但是很多时候可能取不到卡的信息(例如双卡手机和 一些特殊卡),这样就区别不了运营商了.但是有时候我们的需求要 ...
- angular2 学习笔记 ( translate, i18n 翻译 )
更新 : 2017-06-17 <h1 i18n="site header|An introduction header for this sample">Hello ...
- tp5服务器验证案例
1.验证器代码 <?php namespace app\user\validate; use think\Validate; use Potting\IDCard; /** * 山区治理报名验证 ...
- 国家code和区号计算
因为项目中要用到这个功能.实现类似微信注冊时能够选择国家并得到对应的区号.还要推断号码正确与否的正则. 找到了 libPhoneNumber-iOS 标准化电话号码库 https://github.c ...
- android call and audio
mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system ConnCtl *:s android audio (http://blog.cs ...
- Android工具类整合
Android-JSONUtil工具类 常用的Json工具类,包含Json转换成实体.实体转json字符串.list集合转换成json.数组转换成json public class JSONUtil ...
随机推荐
- python----面对对象三大特征2
多态 什么是多态?多态指的是一类事物有多种形态,例如一个动物类,狗和猫都通过继承动物类来得来,这样我们可以将狗.猫称作动物类的另一种形态. 在java中也存在多态,java中的多态是用来解决在一个函数 ...
- map内置函数分析所得到的思路
map:会根据提供的函数对指定序列做映射. map(func, *iterables) --> map object Make an iterator that computes the fun ...
- echarts之简单的入门——【一】做个带时间轴的柱状统计图
百度Echarts 官网首页 http://echarts.baidu.com/ 配置项手册 http://echarts.baidu.com/option.html#title GL配置项手册 h ...
- day27 多态 多继承 接口类 抽象类
简单来说:多态就是指一个相同的方法名在不同的对象调用的时候实现一样或者不一样的方法实例1: 动物类有个方法 "嚎叫" 狗类也有个方法 "嚎叫" 猫类继承了动物类 ...
- 【 Gym - 101138K 】 The World of Trains (DP)
BUPT2017 wintertraining(15) #4E Gym - 101138K 题意 N节车厢的火车,每节车厢容量是1~K,那么有\(K^N\)种火车. 求选择D个连续的且容量相同的车厢的 ...
- 【POJ 3176】Cow Bowling(DP)
题 Description The cows don't use actual bowling balls when they go bowling. They each take a number ...
- 洛谷P1973 [NOI2011]Noi嘉年华(动态规划,决策单调性)
洛谷题目传送门 DP题怕是都要大大的脑洞...... 首先,时间那么大没用,直接离散化. 第一问还好.根据题意容易发现,当一堆活动的时间有大量重叠的时候,更好的办法是把它们全部安排到一边去.那么我们转 ...
- Java 实现金额转换 代码示例
金额转换,阿拉伯数字的金额转换成中国传统的形式如: (¥1011)→(壹仟零壹拾壹元整)输出. 分析: 金额转换,在开发财务相关软件时会经常用到,也是软件本地化的一个需要.一般开发公司或者团队都有相应 ...
- HTML for android 移动小球
<html> <head> <title>球</title> <style type="text/css"> .test ...
- Linux 常用命令——which, whereis, locate, find
转载请注明出处:http://blog.csdn.net/drecik__/article/details/8455399 1. which 查找使用命令所在的位置 2. whereis 搜索文件,跟 ...