CI's validation серьезно хреново иметь дело, особенно если вы хотите использовать удивительный Jquery pluggins, которые делают жизнь простой.
Для клиентов, я использую jquery plugin, написанный Jörn Zaefferer, довольно легко получить навес и очень настраиваемый.
Существует множество встроенных методов для стандартных вещей, таких как URL-адреса, для номеров телефонов NZ. Я создал некоторые настраиваемые правила, которые вы можете добавить в файл дополнительных методов.js, который поставляется с плагином.
/**
* matches NZ phone number formats
*
* +64 7 123 1234
* or
* 07-123-1234
* or
* 071231234
*
* spaces/hyphens optional
*
*/
jQuery.validator.addMethod('phoneNZ', function(phone_number, element) {
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(0|(\+64(\s|-)?)){1}\d{1}(\s|-)?\d{3}(\s|-)?\d{4}$/, 'Please specify a valid phone number');
/**
* matches NZ mobile number formats
*
* 021 123 1234
* or
* 027 123 1234
* or
* 022-123-1234
* or
* +64 21 123 1234
*
* spaces/hyphens optional
*
*/
jQuery.validator.addMethod('mobileNZ', function(phone_number, element) {
return this.optional(element) || phone_number.length > 9 &&
phone_number.match(/^(0|(\+64(\s|-)?)){1}(21|22|27){1}(\s|-)?\d{3}(\s|-)?\d{4}$/);
}, 'Please specify a valid mobile number');
Как примечание стороны, использовать этот экономен, если вы не планируете на набор этих чисел в вычислительном просто оставить их как свободный текст с ограничением по длине, есть много вариантов, как люди хотят, чтобы ввести номера телефонов и вам лучше не обманывать людей, применяя правило, которое им не подходит/их число/добавление букв/символов + расширений и т. д.
Посмотрите @ php filters: http: //www.php. net/manual/en/filter.filters.php –