Form Validation - Not In Method
diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php
index 1230ce5..a98f49b 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_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 3e8204e..74a5b87 100644
--- a/system/libraries/Form_validation.php
+++ b/system/libraries/Form_validation.php
@@ -1475,6 +1475,22 @@
 	// --------------------------------------------------------------------
 
 	/**
+	 * 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
 	 *
 	 * @param	string
diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst
index 3f72369..cbf8028 100644
--- a/user_guide_src/source/libraries/form_validation.rst
+++ b/user_guide_src/source/libraries/form_validation.rst
@@ -964,6 +964,7 @@
                                      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.