From fd5b2acabda081e3dccc2e50997b4dcfac2caf88 Mon Sep 17 00:00:00 2001 From: Lance Vincent Date: Wed, 28 Jan 2015 01:36:10 +0800 Subject: Form Validation - Not In Method --- system/language/english/form_validation_lang.php | 1 + system/libraries/Form_validation.php | 16 ++++++++++++++++ user_guide_src/source/libraries/form_validation.rst | 1 + 3 files changed, 18 insertions(+) diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php index 1230ce566..a98f49b39 100644 --- a/system/language/english/form_validation_lang.php +++ b/system/language/english/form_validation_lang.php @@ -55,6 +55,7 @@ $lang['form_validation_greater_than'] = 'The {field} field must contain a numbe $lang['form_validation_greater_than_equal_to'] = 'The {field} field must contain a number greater than or equal to {param}.'; $lang['form_validation_between'] = 'The {field} field must contain a number between {param}.'; $lang['form_validation_in'] = 'The {field} field must be within a predetermined list: {param}.'; +$lang['form_validation_not_in'] = 'The {field} field must not be within: {param}.'; $lang['form_validation_date'] = 'The {field} field must be a proper date.'; /* End of file form_validation_lang.php */ diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php index 3e8204eee..74a5b87a0 100644 --- a/system/libraries/Form_validation.php +++ b/system/libraries/Form_validation.php @@ -1474,6 +1474,22 @@ class CI_Form_validation { // -------------------------------------------------------------------- + /** + * Value should not be within an array of values + * + * @param string + * @param array + * @return bool + */ + public function not_in($value, $list) + { + $list = array_map('trim', explode(',', (string) $list)); + + return ! in_array((string) $value, $list); + } + + // -------------------------------------------------------------------- + /** * Value should be a valid date * diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst index 3f723696e..cbf802864 100644 --- a/user_guide_src/source/libraries/form_validation.rst +++ b/user_guide_src/source/libraries/form_validation.rst @@ -964,6 +964,7 @@ Rule Parameter Description or not numeric. **between** Yes Returns FALSE if the form element is not within the given range. between[10,20] **in** Yes Returns FALSE if the form element is not within a predetermined list. in[red,blue,green] +**not_in** Yes Returns FALSE if the form element is within a predetermined list. not_in[red,blue,green] **date** No Returns FALSE if the form element is not a proper date. **alpha** No Returns FALSE if the form element contains anything other than alphabetical characters. **alpha_numeric** No Returns FALSE if the form element contains anything other than alpha-numeric characters. -- cgit v1.2.3-24-g4f1b