CRegularExpressionValidator
| Пакет | system.validators |
|---|---|
| Наследование | класс CRegularExpressionValidator » CValidator » CComponent |
| С момента | 1.0 |
| Исходный код | framework/validators/CRegularExpressionValidator.php |
CRegularExpressionValidator проверяет, соответствует ли значение атрибута указанному регулярному выражению. Вы можете инвертировать логику проверки с помощью свойства not (доступно начиная с версии 1.1.5).
Свойства public
| Свойство | Тип | Описание | Определено в |
|---|---|---|---|
| allowEmpty | boolean | можно ли значение атрибута быть null или пустым. | CRegularExpressionValidator |
| attributes | array | список атрибутов, которые должны быть проверены. | CValidator |
| builtInValidators | array | список встроенных валидаторов (имя=>класс) | CValidator |
| enableClientValidation | boolean | выполнять ли проверку на стороне клиента. | CValidator |
| except | array | список сценариев, для которых валидатор не должен применяться. | CValidator |
| message | string | пользовательское сообщение об ошибке. | CValidator |
| not | boolean | инвертировать ли логику проверки. | CRegularExpressionValidator |
| on | array | список сценариев, для которых валидатор должен применяться. | CValidator |
| pattern | string | регулярное выражение для проверки | CRegularExpressionValidator |
| safe | boolean | являются ли атрибуты, указанные с этим валидатором, безопасными для массового назначения. | CValidator |
| skipOnError | boolean | пропускать ли эту проверку, если уже есть ошибка валидации для текущего атрибута. | CValidator |
Методы public
| Метод | Описание | Определено в |
|---|---|---|
| __call() | Вызывает метод, который не является методом класса. | CComponent |
| __get() | Возвращает значение свойства, список обработчиков событий или поведение, основываясь на его имени. | CComponent |
| __isset() | Проверяет, является ли значение свойства null. | CComponent |
| __set() | Устанавливает значение свойства компонента. | CComponent |
| __unset() | Устанавливает свойство компонента в null. | CComponent |
| applyTo() | Возвращает значение, указывающее, применяется ли валидатор к указанному сценарию. | CValidator |
| asa() | Возвращает объект поведения с заданным именем. | CComponent |
| attachBehavior() | Присоединяет поведение к компоненту. | CComponent |
| attachBehaviors() | Присоединяет список поведений к компоненту. | CComponent |
| attachEventHandler() | Присоединяет обработчик событий к событию. | CComponent |
| canGetProperty() | Определяет, можно ли прочитать свойство. | CComponent |
| canSetProperty() | Определяет, можно ли установить свойство. | CComponent |
| clientValidateAttribute() | Возвращает JavaScript, необходимый для проверки на стороне клиента. | CRegularExpressionValidator |
| createValidator() | Создает объект валидатора. | CValidator |
| detachBehavior() | Отсоединяет поведение от компонента. | CComponent |
| detachBehaviors() | Отсоединяет все поведения от компонента. | CComponent |
| detachEventHandler() | Отсоединяет существующий обработчик событий. | CComponent |
| disableBehavior() | Отключает присоединенное поведение. | CComponent |
| disableBehaviors() | Отключает все присоединенные к этому компоненту поведения. | CComponent |
| enableBehavior() | Включает присоединенное поведение. | CComponent |
| enableBehaviors() | Включает все присоединенные к этому компоненту поведения. | CComponent |
| evaluateExpression() | Вычисляет PHP выражение или обратный вызов в контексте этого компонента. | CComponent |
| getEventHandlers() | Возвращает список присоединенных обработчиков событий для события. | CComponent |
| hasEvent() | Определяет, определено ли событие. | CComponent |
| hasEventHandler() | Проверяет, есть ли присоединенные обработчики к событию с заданным именем. | CComponent |
| hasProperty() | Определяет, определено ли свойство. | CComponent |
| raiseEvent() | Вызывает событие. | CComponent |
| validate() | Проверяет указанный объект. | CValidator |
Методы protected
| Метод | Описание | Определено в |
|---|---|---|
| addError() | Добавляет ошибку об указанном атрибуте в активную запись. | CValidator |
| isEmpty() | Проверяет, пусто ли данное значение. | CValidator |
| validateAttribute() | Проверяет атрибут объекта. | CRegularExpressionValidator |
Подробное описание свойств
allowEmpty свойство
public boolean $allowEmpty;
можно ли значение атрибута быть null или пустым. По умолчанию true, что означает, что если атрибут пуст, он считается валидным.
not свойство (доступно с v1.1.5)
public boolean $not;
инвертировать ли логику проверки. По умолчанию false. Если установлено в true, регулярное выражение, определенное через pattern, НЕ должно совпадать со значением атрибута.
pattern свойство
public string $pattern;
регулярное выражение для проверки
Подробное описание методов
clientValidateAttribute() метод (доступен начиная с v1.1.7)
public string clientValidateAttribute(CModel $object, string $attribute) | ||
| $object | CModel | объект данных, который проверяется |
| $attribute | string | имя атрибута, который нужно проверить. |
| {return} | string | скрипт проверки на стороне клиента. |
Исходный код: framework/validators/CRegularExpressionValidator.php#70 (показать)
public function clientValidateAttribute($object,$attribute)
{
if($this->pattern===null)
throw new CException(Yii::t('yii','The "pattern" property must be specified with a valid regular expression.'));
$message=$this->message!==null ? $this->message : Yii::t('yii','{attribute} is invalid.');
$message=strtr($message, array(
'{attribute}'=>$object->getAttributeLabel($attribute),
));
$pattern=$this->pattern;
$pattern=preg_replace('/\\\\x\{?([0-9a-fA-F]+)\}?/', '\u$1', $pattern);
$delim=substr($pattern, 0, 1);
$endpos=strrpos($pattern, $delim, 1);
$flag=substr($pattern, $endpos + 1);
if ($delim!=='/')
$pattern='/' . str_replace('/', '\\/', substr($pattern, 1, $endpos - 1)) . '/';
else
$pattern = substr($pattern, 0, $endpos + 1);
if (!empty($flag))
$pattern .= preg_replace('/[^igm]/', '', $flag);
return "
if(".($this->allowEmpty ? "jQuery.trim(value)!='' && " : '').($this->not ? '' : '!')."value.match($pattern)) {
messages.push(".CJSON::encode($message).");
}
";
}
Возвращает JavaScript, необходимый для проверки на стороне клиента.
См. также
validateAttribute() метод
protected void validateAttribute(CModel $object, string $attribute) | ||
| $object | CModel | валидируемый объект |
| $attribute | string | валидируемый атрибут |
Исходный код: framework/validators/CRegularExpressionValidator.php#44 (показать)
protected function validateAttribute($object,$attribute)
{
$value=$object->$attribute;
if($this->allowEmpty && $this->isEmpty($value))
return;
if($this->pattern===null)
throw new CException(Yii::t('yii','The "pattern" property must be specified with a valid regular expression.'));
// reason of array checking explained here: https://github.com/yiisoft/yii/issues/1955
if(is_array($value) ||
(!$this->not && !preg_match($this->pattern,$value)) ||
($this->not && preg_match($this->pattern,$value)))
{
$message=$this->message!==null?$this->message:Yii::t('yii','{attribute} is invalid.');
$this->addError($object,$attribute,$message);
}
}
Проверяет атрибут объекта. Если ошибка обнаружена, сообщение об ошибке добавляется к объекту.
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc/api/1.1/CRegularExpressionValidator