/** * Returns whether the given national number (a string containing only decimal digits) matches * the national number pattern defined in the given {@code PhoneNumberDesc} message. * * @param string $nationalNumber * @param PhoneNumberDesc $numberDesc * @param boolean $allowPrefixMatch * @return boolean */ public function matchesNationalNumber($nationalNumber, PhoneNumberDesc $numberDesc, $allowPrefixMatch) { $nationalNumberPatternMatcher = new Matcher($numberDesc->getNationalNumberPattern(), $nationalNumber); return $nationalNumberPatternMatcher->matches() || $allowPrefixMatch && $nationalNumberPatternMatcher->lookingAt(); }
/** * @param string $nationalNumber * @param PhoneNumberDesc $numberDesc * @return bool */ public function isNumberMatchingDesc($nationalNumber, PhoneNumberDesc $numberDesc) { $nationalNumberPatternMatcher = new Matcher($numberDesc->getNationalNumberPattern(), $nationalNumber); return $this->isNumberPossibleForDesc($nationalNumber, $numberDesc) && $nationalNumberPatternMatcher->matches(); }
/** * @param PhoneNumberDesc $other * @return PhoneNumberDesc */ public function mergeFrom(PhoneNumberDesc $other) { if ($other->hasNationalNumberPattern()) { $this->setNationalNumberPattern($other->getNationalNumberPattern()); } if ($other->hasPossibleNumberPattern()) { $this->setPossibleNumberPattern($other->getPossibleNumberPattern()); } if ($other->hasExampleNumber()) { $this->setExampleNumber($other->getExampleNumber()); } return $this; }
private function isNumberMatchingDesc($nationalNumber, PhoneNumberDesc $numberDesc) { $possibleNumberPatternMatcher = preg_match('/^(' . $numberDesc->getPossibleNumberPattern() . ')$/x', $nationalNumber); $nationalNumberPatternMatcher = preg_match('/^' . $numberDesc->getNationalNumberPattern() . '$/x', $nationalNumber); return $possibleNumberPatternMatcher && $nationalNumberPatternMatcher; }
private function isNumberMatchingDesc($nationalNumber, PhoneNumberDesc $numberDesc) { $possibleNumberPatternMatcher = preg_match('/^(' . str_replace(array(PHP_EOL, ' '), '', $numberDesc->getPossibleNumberPattern()) . ')$/', $nationalNumber); $nationalNumberPatternMatcher = preg_match('/^(' . str_replace(array(PHP_EOL, ' '), '', $numberDesc->getNationalNumberPattern()) . ')$/', $nationalNumber); return $possibleNumberPatternMatcher && $nationalNumberPatternMatcher; }
/** * @param string $nationalNumber * @param PhoneNumberDesc $numberDesc * @return bool */ public function isNumberMatchingDesc($nationalNumber, PhoneNumberDesc $numberDesc) { // Check if any possible number lengths are present; if so, we use them to avoid checking the // validation pattern if they don't match. If they are absent, this means they match the general // description, which we have already checked before checking a specific number type. $actualLength = mb_strlen($nationalNumber); $possibleLengths = $numberDesc->getPossibleLength(); if (count($possibleLengths) > 0 && !in_array($actualLength, $possibleLengths)) { return false; } $nationalNumberPatternMatcher = new Matcher($numberDesc->getNationalNumberPattern(), $nationalNumber); return $nationalNumberPatternMatcher->matches(); }
private function isNumberMatchingDesc($nationalNumber, PhoneNumberDesc $numberDesc) { if (DIRECTORY_SEPARATOR == '\\') { // For Windows $possibleNumberPatternMatcher = preg_match('/^(' . str_replace(array("\n", "\r", ' '), '', $numberDesc->getPossibleNumberPattern()) . ')$/', $nationalNumber); $nationalNumberPatternMatcher = preg_match('/^(' . str_replace(array("\n", "\r", ' '), '', $numberDesc->getNationalNumberPattern()) . ')$/', $nationalNumber); } else { // For Linux $possibleNumberPatternMatcher = preg_match('/^(' . str_replace(array(PHP_EOL, ' '), '', $numberDesc->getPossibleNumberPattern()) . ')$/', $nationalNumber); $nationalNumberPatternMatcher = preg_match('/^(' . str_replace(array(PHP_EOL, ' '), '', $numberDesc->getNationalNumberPattern()) . ')$/', $nationalNumber); } return $possibleNumberPatternMatcher && $nationalNumberPatternMatcher; }