Beispiel #1
0
        // Returns the national prefix extracted, or an empty string if it is not present.
        private String removeNationalPrefixFromNationalNumber()
        {
            int startOfNationalNumber = 0;

            if (isNanpaNumberWithNationalPrefix())
            {
                startOfNationalNumber = 1;
                prefixBeforeNationalNumber.append('1').append(SEPARATOR_BEFORE_NATIONAL_NUMBER);
                isCompleteNumber = true;
            }
            else if (currentMetadata.hasNationalPrefixForParsing())
            {
                Pattern nationalPrefixForParsing =
                    regexCache.getPatternForRegex(currentMetadata.getNationalPrefixForParsing());
                Matcher m = nationalPrefixForParsing.matcher(nationalNumber);
                // Since some national prefix patterns are entirely optional, check that a national prefix
                // could actually be extracted.
                if (m.lookingAt() && m.end() > 0)
                {
                    // When the national prefix is detected, we use international formatting rules instead of
                    // national ones, because national formatting rules could contain local formatting rules
                    // for numbers entered without area code.
                    isCompleteNumber      = true;
                    startOfNationalNumber = m.end();
                    prefixBeforeNationalNumber.append(nationalNumber.substring(0, startOfNationalNumber));
                }
            }
            String nationalPrefix = nationalNumber.substring(0, startOfNationalNumber);

            nationalNumber.delete(0, startOfNationalNumber);
            return(nationalPrefix);
        }