コード例 #1
0
        /// <summary>
        /// Validates mobile number [2/3 In a single region]
        /// </summary>
        /// <param name="phoneNumber"></param>
        /// <param name="region"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public static bool MobileValidator(string phoneNumber, Region region, RegionalOptions options = null)
        {
            var regionValidator = RegionValidatorContainer.GetRegionValidator(region);

            if (regionValidator == null)
            {
                throw new NotImplementedException("No Validator implementation found for this region");
            }
            return(MobileValidator(phoneNumber, new List <IRegionValidator> {
                regionValidator
            }, options));
        }
コード例 #2
0
        private static bool MobileValidator(string phoneNumber, List <IRegionValidator> validators, RegionalOptions options = null)
        {
            if (options == null)
            {
                options = RegionalOptions.Default;
            }

            phoneNumber = PreValidateHandling(phoneNumber, options);
            var normalizedNumber = TelephoneNormalizer.ToPhoneNumberNormalization(phoneNumber, options, "+");

            if (!(PhoneNumberValidateLength(phoneNumber, options) && PhoneNumberValidateFormat(phoneNumber, options)))
            {
                return(false);
            }

            foreach (var validator in validators)
            {
                if (validator.IsMobileNumber(normalizedNumber, options.AllowNoSign))
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #3
0
        /// <summary>
        /// Validates mobile number [3/3 In a list of selected regions]
        /// </summary>
        /// <param name="phoneNumber"></param>
        /// <param name="regions"></param>
        /// <param name="options"></param>
        /// <returns></returns>
        /// <exception cref="NotImplementedException"></exception>
        public static bool MobileValidator(string phoneNumber, IEnumerable <Region> regions, RegionalOptions options = null)
        {
            List <IRegionValidator> validators = new List <IRegionValidator>();

            foreach (var region in regions)
            {
                var regionValidator = RegionValidatorContainer.GetRegionValidator(region);
                if (regionValidator == null)
                {
                    throw new NotImplementedException($"No Validator implementation found for {region} region");
                }
                validators.Add(regionValidator);
            }

            return(MobileValidator(phoneNumber, validators, options));
        }
コード例 #4
0
 /// <summary>
 /// Validates mobile number [1/3 In all available regions]
 /// </summary>
 /// <param name="phoneNumber"></param>
 /// <param name="options"></param>
 /// <returns></returns>
 public static bool MobileValidator(string phoneNumber, RegionalOptions options = null)
 {
     return(MobileValidator(phoneNumber, RegionValidatorContainer.GetAllValidators(), options));
 }