Form Validation - Between method

Value must be within a given numeric range
diff --git a/system/language/english/form_validation_lang.php b/system/language/english/form_validation_lang.php
index 9156ebe..b7ee25a 100644
--- a/system/language/english/form_validation_lang.php
+++ b/system/language/english/form_validation_lang.php
@@ -53,6 +53,7 @@
 $lang['form_validation_less_than_equal_to']	= 'The {field} field must contain a number less than or equal to {param}.';
 $lang['form_validation_greater_than']		= 'The {field} field must contain a number greater than {param}.';
 $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}.';
 
 /* End of file form_validation_lang.php */
 /* Location: ./system/language/english/form_validation_lang.php */
\ No newline at end of file
diff --git a/system/libraries/Form_validation.php b/system/libraries/Form_validation.php
index b640f1e..16766ca 100644
--- a/system/libraries/Form_validation.php
+++ b/system/libraries/Form_validation.php
@@ -1438,6 +1438,27 @@
 	// --------------------------------------------------------------------
 
 	/**
+	 * Between two numeric values
+	 *
+	 * @param	int
+	 * @param	string
+	 * @return	bool
+	 */
+	public function between($str, $range)
+	{
+		if ( ! preg_match('/^\s?(\d+)\s?,\s?(\d+)\s?$/', $range))
+		{
+			return FALSE;
+		}
+
+		list($range_start, $range_end) = array_map('intval', explode(',', $range));
+
+		return is_numeric($str) ? ($str >= $range_start && $str <= $range_end) : FALSE;
+	}
+
+	// --------------------------------------------------------------------
+
+	/**
 	 * Is a Natural number  (0,1,2,3, etc.)
 	 *
 	 * @param	string
diff --git a/user_guide_src/source/libraries/form_validation.rst b/user_guide_src/source/libraries/form_validation.rst
index 2b7780f..9776d73 100644
--- a/user_guide_src/source/libraries/form_validation.rst
+++ b/user_guide_src/source/libraries/form_validation.rst
@@ -962,6 +962,7 @@
                                      not numeric.
 **less_than_equal_to**    Yes        Returns FALSE if the form element is greater than the parameter value,                        less_than_equal_to[8]
                                      or not numeric.
+**between**               Yes        Returns FALSE if the form element is not within the given range.                              between[10,20]
 **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.
 **alpha_numeric_spaces**  No         Returns FALSE if the form element contains anything other than alpha-numeric characters