You are here

protected function NameFormatParser::applyModifiers in Name Field 8

Applies the specified modifiers to the string.

Parameters

string $string: The token string to process.

string $modifiers: The modifiers to apply.

Return value

string The processed string.

1 call to NameFormatParser::applyModifiers()
NameFormatParser::addComponent in src/NameFormatParser.php
Adds a component.

File

src/NameFormatParser.php, line 281

Class

NameFormatParser
Converts a name from an array of components into a defined format.

Namespace

Drupal\name

Code

protected function applyModifiers($string, $modifiers) {
  if (!is_null($string) || strlen($string)) {
    if ($modifiers) {
      $prefix = '';
      $suffix = '';
      if (preg_match('/^(<span[^>]*>)(.*)(<\\/span>)$/i', $string, $matches)) {
        $prefix = $matches[1];
        $string = $matches[2];
        $suffix = $matches[3];
      }
      for ($j = 0; $j < strlen($modifiers); $j++) {
        switch ($modifiers[$j]) {
          case 'L':
            $string = mb_strtolower($string);
            break;
          case 'U':
            $string = mb_strtoupper($string);
            break;
          case 'F':
            $string = Unicode::ucfirst($string);
            break;
          case 'G':
            $string = UniCode::ucwords($string);
            break;
          case 'T':
            $string = trim(preg_replace('/\\s+/', ' ', $string));
            break;
          case 'S':
            $string = Html::escape($string);
            break;
          case 'B':
            $parts = preg_split($this->boundaryRegExp, $string);
            $string = (string) array_shift($parts);
            break;
          case 'b':
            $parts = preg_split($this->boundaryRegExp, $string);
            $string = (string) array_pop($parts);
            break;
        }
      }
      $string = $prefix . $string . $suffix;
    }
  }
  return $string;
}