2016-12-21 3 views
0

я следующее правило в моей модели classsКак определить соответствие правил шаблону regex max 6 символов?

[['kode_pos', 'p_kode_pos'], 'match', 'pattern' => '/^[a-zA-Z0-9 ]{0,6}+$/'], 

Приведенный выше код не работает указать, я ввода ничего и никакой ошибки не появляется в моем поле ввода.

, но с этим правилом

[['kode_pos', 'p_kode_pos'], 'match', 'pattern' => '/^[a-zA-Z0-9 ]+$/'], 

Он работает содержать только буквы, числа, пространство и ошибка появляется, если входной специальный символ. но как определить max 6 char?

+0

Try '/^[\ ш] {0 , 6} $/'. – lubosdz

ответ

0

Используйте это (удаление плюс)

[['kode_pos', 'p_kode_pos'], 'match', 'pattern' => '/^[a-zA-Z0-9 ]{0,6}$/'], 
+0

Спасибо, но это не работает, как и ожидалось, просто введите 123, и он отобразится неверно, введите букву менее 6 символов, это покажет неверный , и я могу ввести более 6 символов. в любом случае просто решил. –

+0

Что? Это должно работать ... – Bizley

+0

Извините, мой плохой, вам нужно добавить первое количество диапазонов, вы можете пропустить второй, а не наоборот. Поэтому '{0,6}', а не '{, 6}' – Bizley

0

Попробуйте добавить этот код

[['kode_pos', 'p_kode_pos'], 'string', 'max' => 6], 
+1

Это позволяет использовать другие символы, кроме перечисленных в шаблоне, например '-',', 'и так далее. – Bizley

+0

дал ему попробовать, как вы говорите, но работает так, как ожидалось, когда я ввожу '-',', 'it show error. –

+1

Невозможно, чтобы правило 'string' с параметром' max' приводило к ошибке при вводе '-' или', ' – Bizley

0

использовать два различных валидатор шаблон

[['fieldName'], 'string', 'max' => 6,'tooLong' => 'field exceeded max length'], 
[['fieldName'], 'match', 'pattern' => '/^[a-zA-Z0-9 ]+$/','message'=>'invalid format'], 
Смежные вопросы