From 57be004b4c9fa23ed50c1fbb039605f3fbe59eb6 Mon Sep 17 00:00:00 2001 From: duandazhi Date: Sun, 4 Apr 2021 22:33:08 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81PhoneUtil=20add=20=E5=AF=B9=20hk?= =?UTF-8?q?=E7=94=B5=E8=AF=9D=E6=94=AF=E6=8C=81=EF=BC=8C=E7=9B=AE=E5=89=8D?= =?UTF-8?q?=E5=A4=A7=E9=99=86=E5=92=8C=E9=A6=99=E6=B8=AF=E7=9A=84=E4=BA=A4?= =?UTF-8?q?=E5=BE=80=E5=8F=98=E5=A4=9A=EF=BC=8C=E9=9C=80=E8=A6=81=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=94=AF=E6=8C=81=202=E3=80=81=E5=A4=A9=E5=B9=B2?= =?UTF-8?q?=E5=9C=B0=E6=94=AF=E5=A2=9E=E5=8A=A0=E6=B3=A8=E9=87=8A=203?= =?UTF-8?q?=E3=80=81=E6=9C=88=E4=BB=BD=EF=BC=8C=E4=B8=8D=E5=85=89=E6=9C=89?= =?UTF-8?q?=E6=AD=A3=E6=9C=88=E5=92=8C=E8=85=8A=E6=9C=88=EF=BC=8C=E5=86=9C?= =?UTF-8?q?=E6=9D=91=E7=9B=AE=E5=89=8D=E8=BF=98=E6=9C=89=20=E5=AF=92?= =?UTF-8?q?=E6=9C=88=E3=80=81=E5=86=AC=E6=9C=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/date/chinese/ChineseMonth.java | 2 +- .../cn/hutool/core/date/chinese/GanZhi.java | 8 ++++- .../java/cn/hutool/core/lang/PatternPool.java | 17 ++++++++++- .../java/cn/hutool/core/util/PhoneUtil.java | 30 ++++++++++++++++--- 4 files changed, 50 insertions(+), 7 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/date/chinese/ChineseMonth.java b/hutool-core/src/main/java/cn/hutool/core/date/chinese/ChineseMonth.java index 088291724..ccf1573db 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/chinese/ChineseMonth.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/chinese/ChineseMonth.java @@ -9,7 +9,7 @@ package cn.hutool.core.date.chinese; public class ChineseMonth { private static final String[] MONTH_NAME = {"一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"}; - private static final String[] MONTH_NAME_TRADITIONAL = {"正", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "腊"}; + private static final String[] MONTH_NAME_TRADITIONAL = {"正", "二", "三", "四", "五", "六", "七", "八", "九", "寒", "冬", "腊"}; /** * 当前农历月份是否为闰月 diff --git a/hutool-core/src/main/java/cn/hutool/core/date/chinese/GanZhi.java b/hutool-core/src/main/java/cn/hutool/core/date/chinese/GanZhi.java index b1eb98f4d..73303f249 100644 --- a/hutool-core/src/main/java/cn/hutool/core/date/chinese/GanZhi.java +++ b/hutool-core/src/main/java/cn/hutool/core/date/chinese/GanZhi.java @@ -4,12 +4,18 @@ import java.time.LocalDate; /** * 天干地支类 - * + * 天干地支,简称为干支 * @author looly * @since 5.4.1 */ public class GanZhi { + /** + * @see 天干地支:简称,干支 + * 十天干:甲(jiǎ)、乙(yǐ)、丙(bǐng)、丁(dīng)、戊(wù)、己(jǐ)、庚(gēng)、辛(xīn)、壬(rén)、癸(guǐ) + * 十二地支:子(zǐ)、丑(chǒu)、寅(yín)、卯(mǎo)、辰(chén)、巳(sì)、午(wǔ)、未(wèi)、申(shēn)、酉(yǒu)、戌(xū)、亥(hài) + * 十二地支对应十二生肖:子-鼠,丑-牛,寅-虎,卯-兔,辰-龙,巳-蛇, 午-马,未-羊,申-猴,酉-鸡,戌-狗,亥-猪 + */ private static final String[] GAN = new String[]{"甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"}; private static final String[] ZHI = new String[]{"子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"}; diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java b/hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java index 153d6c122..a47f65340 100644 --- a/hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/PatternPool.java @@ -49,17 +49,32 @@ public class PatternPool { public final static Pattern MONEY = Pattern.compile("^(\\d+(?:\\.\\d+)?)$"); /** * 邮件,符合RFC 5322规范,正则来自:http://emailregex.com/ + * 注意email 要宽松一点。比如 jetz.chong@hotmail.com、jetz-chong@ hotmail.com、jetz_chong@hotmail.com、dazhi.duan@com.cn 宽松一点把,都算是正常的邮箱 */ - // public final static Pattern EMAIL = Pattern.compile("(\\w|.)+@\\w+(\\.\\w+){1,2}"); public final static Pattern EMAIL = Pattern.compile("(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)])", Pattern.CASE_INSENSITIVE); /** * 移动电话 */ public final static Pattern MOBILE = Pattern.compile("(?:0|86|\\+86)?1[3-9]\\d{9}"); + /** + * 香港移动电话 + * eg: 中国香港: +852 5100 4810, 三位区域码+10位数字, 香港手机号码8位数 + * eg: 中国大陆: +86 180 4953 1399,2位区域码标示+13位数字 + * 中国大陆 +86 Mainland China + * 中国香港 +852 Hong Kong + * 中国澳门 +853 Macau + * 中国台湾 +886 Taiwan + */ + public final static Pattern MOBILE_HK = Pattern.compile("(?:0|852|\\+852)?\\d{8}"); /** * 座机号码 */ public final static Pattern TEL = Pattern.compile("0\\d{2,3}-[1-9]\\d{6,7}"); + /** + * 座机号码+400+800电话 + * @see