setNationalPrefixForParsing() public method

public setNationalPrefixForParsing ( $value )
 public function testMaybeStripNationalPrefix()
 {
     $metadata = new PhoneMetadata();
     $metadata->setNationalPrefixForParsing("34");
     $phoneNumberDesc = new PhoneNumberDesc();
     $phoneNumberDesc->setNationalNumberPattern("\\d{4,8}");
     $metadata->setGeneralDesc($phoneNumberDesc);
     $numberToStrip = "34356778";
     $strippedNumber = "356778";
     $carrierCode = null;
     $this->assertTrue($this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode));
     $this->assertEquals($strippedNumber, $numberToStrip, "Should have had national prefix stripped.");
     // Retry stripping - now the number should not start with the national prefix, so no more
     // stripping should occur.
     $carrierCode = null;
     $this->assertFalse($this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode));
     $this->assertEquals($strippedNumber, $numberToStrip, "Should have had no change - no national prefix present.");
     // Some countries have no national prefix. Repeat test with none specified.
     $metadata->setNationalPrefixForParsing("");
     $carrierCode = null;
     $this->assertFalse($this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode));
     $this->assertEquals($strippedNumber, $numberToStrip, "Should not strip anything with empty national prefix.");
     // If the resultant number doesn't match the national rule, it shouldn't be stripped.
     $metadata->setNationalPrefixForParsing("3");
     $numberToStrip = "3123";
     $strippedNumber = "3123";
     $carrierCode = null;
     $this->assertFalse($this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode));
     $this->assertEquals($strippedNumber, $numberToStrip, "Should have had no change - after stripping, it wouldn't have matched the national rule.");
     // Test extracting carrier selection code.
     $metadata->setNationalPrefixForParsing("0(81)?");
     $numberToStrip = "08122123456";
     $strippedNumber = "22123456";
     $carrierCode = "";
     $this->assertTrue($this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode));
     $this->assertEquals("81", $carrierCode);
     $this->assertEquals($strippedNumber, $numberToStrip, "Should have had national prefix and carrier code stripped.");
     // If there was a transform rule, check it was applied.
     $metadata->setNationalPrefixTransformRule("5\${1}5");
     // Note that a capturing group is present here.
     $metadata->setNationalPrefixForParsing("0(\\d{2})");
     $numberToStrip = "031123";
     $transformedNumber = "5315123";
     $carrierCode = null;
     $this->assertTrue($this->phoneUtil->maybeStripNationalPrefixAndCarrierCode($numberToStrip, $metadata, $carrierCode));
     $this->assertEquals($transformedNumber, $numberToStrip, "Should transform the 031 to a 5315.");
 }
 /**
  *
  * @param string $regionCode
  * @param \DOMElement $element
  * @param string $nationalPrefix
  * @param string $nationalPrefixFormattingRule
  * @return PhoneMetadata
  */
 private static function loadTerritoryTagMetadata($regionCode, \DOMElement $element, $nationalPrefix, $nationalPrefixFormattingRule)
 {
     $metadata = new PhoneMetadata();
     $metadata->setId($regionCode);
     $metadata->setCountryCode((int) $element->getAttribute(self::COUNTRY_CODE));
     if ($element->hasAttribute(self::LEADING_DIGITS)) {
         $metadata->setLeadingDigits($element->getAttribute(self::LEADING_DIGITS));
     }
     $metadata->setInternationalPrefix($element->getAttribute(self::INTERNATIONAL_PREFIX));
     if ($element->hasAttribute(self::PREFERRED_INTERNATIONAL_PREFIX)) {
         $preferredInternationalPrefix = $element->getAttribute(self::PREFERRED_INTERNATIONAL_PREFIX);
         $metadata->setPreferredInternationalPrefix($preferredInternationalPrefix);
     }
     if ($element->hasAttribute(self::NATIONAL_PREFIX_FOR_PARSING)) {
         $metadata->setNationalPrefixForParsing($element->getAttribute(self::NATIONAL_PREFIX_FOR_PARSING));
         if ($element->hasAttribute(self::NATIONAL_PREFIX_TRANSFORM_RULE)) {
             $metadata->setNationalPrefixTransformRule($element->getAttribute(self::NATIONAL_PREFIX_TRANSFORM_RULE));
         }
     }
     if ($nationalPrefix != '') {
         $metadata->setNationalPrefix($nationalPrefix);
         if (!$metadata->hasNationalPrefixForParsing()) {
             $metadata->setNationalPrefixForParsing($nationalPrefix);
         }
     }
     if ($element->hasAttribute(self::PREFERRED_EXTN_PREFIX)) {
         $metadata->setPreferredExtnPrefix($element->getAttribute(self::PREFERRED_EXTN_PREFIX));
     }
     if ($element->hasAttribute(self::MAIN_COUNTRY_FOR_CODE)) {
         $metadata->setMainCountryForCode(true);
     }
     if ($element->hasAttribute(self::LEADING_ZERO_POSSIBLE)) {
         $metadata->setLeadingZeroPossible(true);
     }
     if ($element->hasAttribute(self::MOBILE_NUMBER_PORTABLE_REGION)) {
         $metadata->setMobileNumberPortableRegion(true);
     }
     return $metadata;
 }