From 265b7e85766ba403ca0a8b58648dd091e483cf38 Mon Sep 17 00:00:00 2001 From: wei <> Date: Mon, 30 Jan 2006 22:31:58 +0000 Subject: Adding THtmlArea. --- .../Web/UI/WebControls/TValueTypeValidator.php | 90 ++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 framework/Web/UI/WebControls/TValueTypeValidator.php (limited to 'framework/Web/UI/WebControls/TValueTypeValidator.php') diff --git a/framework/Web/UI/WebControls/TValueTypeValidator.php b/framework/Web/UI/WebControls/TValueTypeValidator.php new file mode 100644 index 00000000..d24fda4f --- /dev/null +++ b/framework/Web/UI/WebControls/TValueTypeValidator.php @@ -0,0 +1,90 @@ + + * @version $Revision: $ $Date: $ + * @package System.Web.UI.WebControls + * @since 3.0 + */ +class TValueTypeValidator +{ + /** + * @return string the data type that the values being compared are converted to before the comparison is made. Defaults to String. + */ + public function getValueType() + { + return $this->getViewState('ValueType','String'); + } + + /** + * Sets the data type (Integer, Double, Currency, Date, String) that the values being compared are converted to before the comparison is made. + * @param string the data type + */ + public function setValueType($value) + { + $this->setViewState('ValueType',TPropertyValue::ensureEnum($value,'Integer','Double','Date','Currency','String'),'String'); + } + + /** + * Sets the date format for a date validation + * @param string the date format value + */ + public function setDateFormat($value) + { + $this->setViewState('DateFormat', $value, ''); + } + + /** + * @return string the date validation date format if any + */ + public function getDateFormat() + { + return $this->getViewState('DateFormat', ''); + } + + + /** + * Determine if the given value is of a particular type using RegExp. + * @param string value to check + * @return boolean true if value fits the type expression. + */ + protected function evaluateDataTypeCheck($value) + { + switch($this->getValueType()) + { + case 'Integer': + return preg_match('/^[-+]?[0-9]+$/',trim($value)); + case 'Float': + case 'Double': + return preg_match('/^[-+]?([0-9]*\.)?[0-9]+([eE][-+]?[0-9]+)?$/',trim($value)); + case 'Currency': + return preg_match('/[-+]?([0-9]*\.)?[0-9]+([eE][-+]?[0-9]+)?$/',trim($value)); + case 'Date': + $dateFormat = $this->getDateFormat(); + if(strlen($dateFormat)) + return pradoParseDate($value, $dateFormat) !== null; + else + return strtotime($value) > 0; + } + return true; + } + + /** + * This method overrides the parent's implementation. + * The validation succeeds if the input data is of valid type. + * The validation always succeeds if ControlToValidate is not specified + * or the input data is empty. + * @return boolean whether the validation succeeds + */ + public function evaluateIsValid() + { + if(($value=$this->getValidationValue($this->getValidationTarget()))==='') + return true; + + return $this->evaluateDataTypeCheck($value); + } +} + +?> \ No newline at end of file -- cgit v1.2.3