mirror of
				https://github.com/continew-org/continew-starter.git
				synced 2025-10-31 10:57:15 +08:00 
			
		
		
		
	feat(validation): 新增 Phone 手机号校验注解,支持校验座机号码、手机号码(中国大陆)、手机号码(中国香港)、手机号码(中国台湾)、手机号码(中国澳门)
区别于 Mobile 手机号校验注解(只校验中国大陆手机号码) Closes #70
This commit is contained in:
		| @@ -23,6 +23,10 @@ import jakarta.validation.ConstraintValidatorContext; | |||||||
| /** | /** | ||||||
|  * 手机号校验器 |  * 手机号校验器 | ||||||
|  * |  * | ||||||
|  |  * <p> | ||||||
|  |  * 校验中国大陆手机号码 | ||||||
|  |  * </p> | ||||||
|  |  * | ||||||
|  * @author Charles7c |  * @author Charles7c | ||||||
|  * @since 2.10.0 |  * @since 2.10.0 | ||||||
|  */ |  */ | ||||||
|   | |||||||
| @@ -0,0 +1,66 @@ | |||||||
|  | /* | ||||||
|  |  * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. | ||||||
|  |  * <p> | ||||||
|  |  * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * <p> | ||||||
|  |  * http://www.gnu.org/licenses/lgpl.html | ||||||
|  |  * <p> | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | package top.continew.starter.validation.constraints; | ||||||
|  |  | ||||||
|  | import jakarta.validation.Constraint; | ||||||
|  | import jakarta.validation.Payload; | ||||||
|  |  | ||||||
|  | import java.lang.annotation.Documented; | ||||||
|  | import java.lang.annotation.Retention; | ||||||
|  | import java.lang.annotation.RetentionPolicy; | ||||||
|  | import java.lang.annotation.Target; | ||||||
|  |  | ||||||
|  | import static java.lang.annotation.ElementType.*; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 手机号校验注解 | ||||||
|  |  * | ||||||
|  |  * <p> | ||||||
|  |  * 校验座机号码、手机号码(中国大陆)、手机号码(中国香港)、手机号码(中国台湾)、手机号码(中国澳门) | ||||||
|  |  * {@code @Phone(message = "手机号格式不正确")} <br /> | ||||||
|  |  * </p> | ||||||
|  |  * | ||||||
|  |  * @author Charles7c | ||||||
|  |  * @since 2.13.0 | ||||||
|  |  */ | ||||||
|  | @Documented | ||||||
|  | @Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE}) | ||||||
|  | @Retention(RetentionPolicy.RUNTIME) | ||||||
|  | @Constraint(validatedBy = PhoneValidator.class) | ||||||
|  | public @interface Phone { | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 提示消息 | ||||||
|  |      * | ||||||
|  |      * @return 提示消息 | ||||||
|  |      */ | ||||||
|  |     String message() default "手机号格式不正确"; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 分组 | ||||||
|  |      * | ||||||
|  |      * @return 分组 | ||||||
|  |      */ | ||||||
|  |     Class<?>[] groups() default {}; | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 负载 | ||||||
|  |      * | ||||||
|  |      * @return 负载 | ||||||
|  |      */ | ||||||
|  |     Class<? extends Payload>[] payload() default {}; | ||||||
|  | } | ||||||
| @@ -0,0 +1,42 @@ | |||||||
|  | /* | ||||||
|  |  * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. | ||||||
|  |  * <p> | ||||||
|  |  * Licensed under the GNU LESSER GENERAL PUBLIC LICENSE 3.0; | ||||||
|  |  * you may not use this file except in compliance with the License. | ||||||
|  |  * You may obtain a copy of the License at | ||||||
|  |  * <p> | ||||||
|  |  * http://www.gnu.org/licenses/lgpl.html | ||||||
|  |  * <p> | ||||||
|  |  * Unless required by applicable law or agreed to in writing, software | ||||||
|  |  * distributed under the License is distributed on an "AS IS" BASIS, | ||||||
|  |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||||
|  |  * See the License for the specific language governing permissions and | ||||||
|  |  * limitations under the License. | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | package top.continew.starter.validation.constraints; | ||||||
|  |  | ||||||
|  | import cn.hutool.core.util.PhoneUtil; | ||||||
|  | import jakarta.validation.ConstraintValidator; | ||||||
|  | import jakarta.validation.ConstraintValidatorContext; | ||||||
|  |  | ||||||
|  | /** | ||||||
|  |  * 手机号校验器 | ||||||
|  |  * | ||||||
|  |  * <p> | ||||||
|  |  * 校验座机号码、手机号码(中国大陆)、手机号码(中国香港)、手机号码(中国台湾)、手机号码(中国澳门) | ||||||
|  |  * </p> | ||||||
|  |  * | ||||||
|  |  * @author Charles7c | ||||||
|  |  * @since 2.13.0 | ||||||
|  |  */ | ||||||
|  | public class PhoneValidator implements ConstraintValidator<Mobile, String> { | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public boolean isValid(String value, ConstraintValidatorContext context) { | ||||||
|  |         if (value == null) { | ||||||
|  |             return true; | ||||||
|  |         } | ||||||
|  |         return PhoneUtil.isPhone(value); | ||||||
|  |     } | ||||||
|  | } | ||||||
		Reference in New Issue
	
	Block a user