From c18ff939d338214a378f18fccf3941f08a794883 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E8=88=92=E5=85=8B?= <865830846@qq.com> Date: Thu, 29 Jul 2021 12:46:08 +0800 Subject: [PATCH 1/4] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=9B=BA=E8=AF=9D?= =?UTF-8?q?=E5=8F=B7=E7=A0=81=E6=AD=A3=E5=88=99=E8=A1=A8=E8=BE=BE=E5=BC=8F?= =?UTF-8?q?=E5=B8=B8=E9=87=8F=202.=E6=B7=BB=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BA=E8=AF=9D=E5=8F=B7=E7=A0=81=E5=8C=BA=E5=8F=B7=E6=96=B9?= =?UTF-8?q?=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/cn/hutool/core/lang/RegexPool.java | 2 +- .../src/main/java/cn/hutool/core/util/PhoneUtil.java | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java b/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java index e0519d223..7cf965deb 100755 --- a/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java @@ -78,7 +78,7 @@ public interface RegexPool { /** * 座机号码 */ - String TEL = "0\\d{2,3}-[1-9]\\d{6,7}"; + String TEL = "(010|02\\d|0[3-9]\\d{2})?-?\\d{6,8}"; /** * 座机号码+400+800电话 * diff --git a/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java index 21187a9a6..c0f33264c 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java @@ -161,4 +161,16 @@ public class PhoneUtil { public static CharSequence subAfter(CharSequence phone) { return StrUtil.sub(phone, 7, 11); } + + /** + * 获取固话号码的区号 + * + * @param value 固话号码 + * @return 固话号码的区号 + * @since 5.7.6 + */ + public static CharSequence subTelAreaCode(CharSequence value) + { + return ReUtil.getGroup1(PatternPool.TEL, value); + } } From 07b589d2b3678ded45a65e63197541a3e4ad4e09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E8=88=92=E5=85=8B?= <865830846@qq.com> Date: Thu, 29 Jul 2021 12:59:53 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=9B=BA=E8=AF=9D=E5=8F=B7=E7=A0=81?= =?UTF-8?q?=E5=BF=85=E9=A1=BB=E5=AD=98=E5=9C=A8=E5=8C=BA=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java b/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java index 7cf965deb..3a49cec9b 100755 --- a/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java @@ -78,7 +78,7 @@ public interface RegexPool { /** * 座机号码 */ - String TEL = "(010|02\\d|0[3-9]\\d{2})?-?\\d{6,8}"; + String TEL = "(010|02\\d|0[3-9]\\d{2})-?\\d{6,8}"; /** * 座机号码+400+800电话 * From c7bfb103d83f0cba84a2b3213f2536abc2408b13 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E8=88=92=E5=85=8B?= <865830846@qq.com> Date: Thu, 29 Jul 2021 13:12:10 +0800 Subject: [PATCH 3/4] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E5=9B=BA=E8=AF=9D?= =?UTF-8?q?=E5=8F=B7=E7=A0=81=E7=9A=84=E6=AD=A3=E5=88=99=E8=A1=A8=E8=BE=BE?= =?UTF-8?q?=E5=BC=8F=E5=8F=AF=E4=BB=A5=E8=8E=B7=E5=8F=96=E5=8F=B7=E7=A0=81?= =?UTF-8?q?=E9=83=A8=E5=88=86=202.=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=9B=BA=E8=AF=9D=E5=8F=B7=E7=A0=81=E4=B8=AD=E5=8F=B7=E7=A0=81?= =?UTF-8?q?=E9=83=A8=E5=88=86=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/cn/hutool/core/lang/RegexPool.java | 2 +- .../java/cn/hutool/core/util/PhoneUtil.java | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java b/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java index 3a49cec9b..c17678b64 100755 --- a/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java +++ b/hutool-core/src/main/java/cn/hutool/core/lang/RegexPool.java @@ -78,7 +78,7 @@ public interface RegexPool { /** * 座机号码 */ - String TEL = "(010|02\\d|0[3-9]\\d{2})-?\\d{6,8}"; + String TEL = "(010|02\\d|0[3-9]\\d{2})-?(\\d{6,8})"; /** * 座机号码+400+800电话 * diff --git a/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java index c0f33264c..fda019702 100644 --- a/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java +++ b/hutool-core/src/main/java/cn/hutool/core/util/PhoneUtil.java @@ -163,14 +163,26 @@ public class PhoneUtil { } /** - * 获取固话号码的区号 + * 获取固话号码中的区号 * - * @param value 固话号码 - * @return 固话号码的区号 + * @param value 完整的固话号码 + * @return 固话号码的区号部分 * @since 5.7.6 */ - public static CharSequence subTelAreaCode(CharSequence value) + public static CharSequence subTelBefore(CharSequence value) { return ReUtil.getGroup1(PatternPool.TEL, value); } + + /** + * 获取固话号码中的号码 + * + * @param value 完整的固话号码 + * @return 固话号码的号码部分 + * @since 5.7.6 + */ + public static CharSequence subTelAfter(CharSequence value) + { + return ReUtil.get(PatternPool.TEL, value, 2); + } } From d339f607a3f3238ffcfb722161172569b6fe9d98 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E8=88=92=E5=85=8B?= <865830846@qq.com> Date: Thu, 29 Jul 2021 13:28:59 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E5=9B=BA=E8=AF=9D=E6=96=B9=E6=B3=95=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cn/hutool/core/util/PhoneUtilTest.java | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/hutool-core/src/test/java/cn/hutool/core/util/PhoneUtilTest.java b/hutool-core/src/test/java/cn/hutool/core/util/PhoneUtilTest.java index d00d6e733..a05425e9f 100644 --- a/hutool-core/src/test/java/cn/hutool/core/util/PhoneUtilTest.java +++ b/hutool-core/src/test/java/cn/hutool/core/util/PhoneUtilTest.java @@ -65,4 +65,35 @@ public class PhoneUtilTest { Assert.assertEquals("1234", PhoneUtil.subBetween(mobile)); Assert.assertEquals("5678", PhoneUtil.subAfter(mobile)); } + + @Test + public void testNewTel() { + ArrayList tels = new ArrayList<>(); + tels.add("010-12345678"); + tels.add("01012345678"); + tels.add("020-9999999"); + tels.add("0209999999"); + tels.add("0755-7654321"); + tels.add("07557654321"); + ArrayList errTels = new ArrayList<>(); + errTels.add("010 12345678"); + errTels.add("A20-9999999"); + errTels.add("0755-7654.321"); + errTels.add("13619887123"); + for (String s : tels) { + Assert.assertTrue(PhoneUtil.isTel(s)); + } + for (String s : errTels) { + Assert.assertFalse(PhoneUtil.isTel(s)); + } + Assert.assertEquals("010", PhoneUtil.subTelBefore("010-12345678")); + Assert.assertEquals("010", PhoneUtil.subTelBefore("01012345678")); + Assert.assertEquals("12345678", PhoneUtil.subTelAfter("010-12345678")); + Assert.assertEquals("12345678", PhoneUtil.subTelAfter("01012345678")); + + Assert.assertEquals("0755", PhoneUtil.subTelBefore("0755-7654321")); + Assert.assertEquals("0755", PhoneUtil.subTelBefore("07557654321")); + Assert.assertEquals("7654321", PhoneUtil.subTelAfter("0755-7654321")); + Assert.assertEquals("7654321", PhoneUtil.subTelAfter("07557654321")); + } }