From 1bb46ac1b76eafcd8d3f6a2b28edfe4375007677 Mon Sep 17 00:00:00 2001 From: Vlasislav Kashin <99754299+vloldik@users.noreply.github.com> Date: Thu, 10 Jul 2025 18:37:47 +0300 Subject: [PATCH] Fix valid phonenumber regex --- src/phonenumberutil/phone_number_regexps_and_mappings.rs | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/phonenumberutil/phone_number_regexps_and_mappings.rs b/src/phonenumberutil/phone_number_regexps_and_mappings.rs index cf1081b..17af47f 100644 --- a/src/phonenumberutil/phone_number_regexps_and_mappings.rs +++ b/src/phonenumberutil/phone_number_regexps_and_mappings.rs @@ -268,10 +268,12 @@ impl PhoneNumberRegExpsAndMappings { let alphanum = fast_cat::concat_str!(VALID_ALPHA_INCL_UPPERCASE, DIGITS); let extn_patterns_for_parsing = create_extn_pattern(true); let valid_phone_number = format!( - "{}{{{}}}|[{}]*(?:[{}{}]*{}){{3,}}[{}{}{}{}]*", - DIGITS, MIN_LENGTH_FOR_NSN, PLUS_CHARS, + // moved 2-digits pattern to an end for match full number first + "[{}]*(?:[{}{}]*{}){{3,}}[{}{}{}{}]*|{}{{{}}}", + PLUS_CHARS, VALID_PUNCTUATION, STAR_SIGN, DIGITS, - VALID_PUNCTUATION, STAR_SIGN, VALID_ALPHA, DIGITS + VALID_PUNCTUATION, STAR_SIGN, DIGITS, VALID_ALPHA, + DIGITS, MIN_LENGTH_FOR_NSN, ); let rfc3966_phone_digit = format!("({}|{})", DIGITS, RFC3966_VISUAL_SEPARATOR);