Open Journal Systems  3.3.0
IsNumeric.php
1 <?php
2 /*
3  * citeproc-php
4  *
5  * @link http://github.com/seboettg/citeproc-php for the source repository
6  * @copyright Copyright (c) 2016 Sebastian Böttger.
7  * @license https://opensource.org/licenses/MIT
8  */
9 
11 
12 use NumberFormatter;
15 use stdClass;
16 
25 {
26 
32  protected function matchForVariable($variable, $data)
33  {
34  if (isset($data->{$variable})) {
35  return $this->parseValue($data->{$variable});
36  }
37  return false;
38  }
39 
49  private function parseValue($evalValue)
50  {
51  if (is_numeric($evalValue)) {
52  return true;
53  } elseif (preg_match(NumberHelper::PATTERN_ORDINAL, $evalValue)) {
54  $numberFormatter = new NumberFormatter(
55  CiteProc::getContext()->getLocale()->getLanguage(),
56  NumberFormatter::ORDINAL
57  );
58  return $numberFormatter->parse($evalValue) !== false;
59  } elseif (preg_match(NumberHelper::PATTERN_ROMAN, $evalValue)) {
60  return NumberHelper::roman2Dec($evalValue) !== false;
61  } elseif (preg_match(NumberHelper::PATTERN_COMMA_AMPERSAND_RANGE, $evalValue)) {
62  return true;
63  }
64  return false;
65  }
66 }
Seboettg\CiteProc\Constraint\AbstractConstraint
Definition: AbstractConstraint.php:17
Seboettg\CiteProc\Constraint\IsNumeric
Definition: IsNumeric.php:24
Seboettg\CiteProc\Util\NumberHelper
Definition: NumberHelper.php:20
Seboettg\CiteProc\CiteProc
Definition: CiteProc.php:32
Seboettg\CiteProc\Constraint\IsNumeric\matchForVariable
matchForVariable($variable, $data)
Definition: IsNumeric.php:32
Seboettg\CiteProc\Constraint
Definition: AbstractConstraint.php:8