$phoneUtil = PhoneNumberUtil::getInstance();
$number = $phoneUtil->parse("18002530000", "US");
$nationalSignificantNumber = $phoneUtil->getNationalSignificantNumber($number);
$nationalDestinationCodeLength = $phoneUtil->getLengthOfNationalDestinationCode($number);
if ($nationalDestinationCodeLength > 0) {
$nationalDestinationCode = substr($nationalSignificantNumber, 0, $nationalDestinationCodeLength);
$subscriberNumber = substr($nationalSignificantNumber, $nationalDestinationCodeLength);
} else {
$nationalDestinationCode = "";
$subscriberNumber = $nationalSignificantNumber;
}
Refer to the unit tests to see the difference between this function and
{@link #getLengthOfGeographicalAreaCode}.
public getLengthOfNationalDestinationCode ( |
||
$number | the PhoneNumber object for which clients want to know the length of the NDC. | |
return | integer | the length of NDC of the PhoneNumber object passed in. |
public function testGetLengthOfNationalDestinationCode() { // Google MTV, which has national destination code (NDC) "650". $this->assertEquals(3, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$usNumber)); // A North America toll-free number, which has NDC "800". $this->assertEquals(3, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$usTollFree)); // Google London, which has NDC "20". $this->assertEquals(2, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$gbNumber)); // A UK mobile phone, which has NDC "7912". $this->assertEquals(4, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$gbMobile)); // Google Buenos Aires, which has NDC "11". $this->assertEquals(2, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$arNumber)); // An Argentinian mobile which has NDC "911". $this->assertEquals(3, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$arMobile)); // Google Sydney, which has NDC "2". $this->assertEquals(1, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$auNumber)); // Google Singapore, which has NDC "6521". $this->assertEquals(4, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$sgNumber)); // An invalid US number (1 digit shorter), which has no NDC. $this->assertEquals(0, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$usShortByOneNumber)); // A number containing an invalid country calling code, which shouldn't have any NDC. $number = new PhoneNumber(); $number->setCountryCode(123)->setNationalNumber(6502530000); $this->assertEquals(0, $this->phoneUtil->getLengthOfNationalDestinationCode($number)); // An international toll free number, which has NDC "1234". $this->assertEquals(4, $this->phoneUtil->getLengthOfNationalDestinationCode(self::$internationalTollFree)); }