Back to ListModel class

Method refineSearchStringToRegex

protected string
refineSearchStringToRegex
(mixed $search, mixed $regexDelimiter = '/')
Parse and transform the search string into a string fit for regex-ing arbitrary strings against
Parameters
  • string $search The search string
  • string $regexDelimiter The regex delimiter to use for the quoting
Returns
  • string Search string escaped for regex
Since
  • 3.4
Class: ListModel
Project: Joomla

Method refineSearchStringToRegex - Source code

/**
 * Parse and transform the search string into a string fit for regex-ing arbitrary strings against
 *
 * @param   string  $search          The search string
 * @param   string  $regexDelimiter  The regex delimiter to use for the quoting
 *
 * @return  string  Search string escaped for regex
 *
 * @since   3.4
 */
protected function refineSearchStringToRegex($search, $regexDelimiter = '/')
{
    $searchArr = explode('|', trim($search, ' |'));
    foreach ($searchArr as $key => $searchString) {
        if (trim($searchString) === '') {
            unset($searchArr[$key]);
            continue;
        }
        $searchArr[$key] = str_replace(' ', '.*', preg_quote(trim($searchString), $regexDelimiter));
    }
    return implode('|', $searchArr);
}