Spec-Zone.ru › Yii 1.1

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, необходимый для проверки на стороне клиента.

См. также

  • CActiveForm::enableClientValidation

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API