• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/internals/input.php
  • Класс: BitrixSaleInternalsInputStringInput
  • Вызов: StringInput::getErrorSingle
static function getErrorSingle(array $input, $value)
{
	$errors = array();

	$value = trim($value);

	$minLength = isset($input['MINLENGTH']) && is_numeric($input['MINLENGTH']) ? (int)$input['MINLENGTH'] : 0;
	if ($minLength > 0 && mb_strlen($value) < $minLength)
	{
		$errors['MINLENGTH'] = Loc::getMessage('INPUT_STRING_MINLENGTH_ERROR', ['#NUM#' => $minLength]);
	}

	$maxLength = isset($input['MAXLENGTH']) && is_numeric($input['MAXLENGTH']) ? (int)$input['MAXLENGTH'] : 0;
	if ($maxLength > 0 && mb_strlen($value) > $maxLength)
	{
		$errors['MAXLENGTH'] = Loc::getMessage('INPUT_STRING_MAXLENGTH_ERROR', ['#NUM#' => $maxLength]);
	}

	$pattern = trim(
		(string)($input['PATTERN'] ?? '')
	);
	if ($pattern !== "")
	{
		$issetDelimiter = false;

		if (isset($pattern[0]) && in_array($pattern[0], static::$patternDelimiters) && mb_strrpos($pattern, $pattern[0]) !== false)
		{
			$issetDelimiter = true;
		}

		$matchPattern = $pattern;
		if (!$issetDelimiter)
		{
			$matchPattern = "/".$pattern."/";
		}

		$pregMatchResult = null;
		try
		{
			$pregMatchResult = preg_match($matchPattern, $value);
		}
		catch (Exception $e)
		{
		}
		finally
		{
			if (!$pregMatchResult)
			{
				$errors['PATTERN'] = Loc::getMessage('INPUT_STRING_PATTERN_ERROR');
			}
		}
	}

	return $errors;
}