diff options
| -rw-r--r-- | HISTORY | 1 | ||||
| -rw-r--r-- | framework/Web/Javascripts/source/prado/validator/validation3.js | 9 | ||||
| -rw-r--r-- | framework/Web/UI/WebControls/TRegularExpressionValidator.php | 20 | 
3 files changed, 25 insertions, 5 deletions
| @@ -37,6 +37,7 @@ ENH: Ticket#890 - Minor optimization: Use $var===null over is_null($var) (Knut)  ENH: Ticket#893 - Added page parameter to queryForPagedList() to specify the initial page to load (Michael)  ENH: Ticket#896 - TTheme - enhance for subclassing (Knut)  ENH: Ticket#898 - Minor optimization: Use (int) over intval() (Knut) +ENH: Ticket#813 - (Issue #13) TRegularExpressionValidator has new ClientSidePatternModifier property (Michael)  ENH: Ticket#809 - "LIMIT 1" for ActiveRecord find() and findBy() (Carl)  ENH: Ticket#848 - TCache "set" and "add" with empty values (Carl)  ENH: Ticket#822 - Not receiving emails from TEmailLogRoute (Carl) diff --git a/framework/Web/Javascripts/source/prado/validator/validation3.js b/framework/Web/Javascripts/source/prado/validator/validation3.js index d94a6c0c..a3b803d8 100644 --- a/framework/Web/Javascripts/source/prado/validator/validation3.js +++ b/framework/Web/Javascripts/source/prado/validator/validation3.js @@ -1668,6 +1668,7 @@ Prado.WebUI.TRegularExpressionValidator = Class.extend(Prado.WebUI.TBaseValidato  	 * @constructor initialize
  	 * @param {object} options - Additional constructor option:
  	 * @... {string} ValidationExpression - Regular expression to match against.
 +	 * @... {string} PatternModifiers - Pattern modifiers: combinations of g, i, and m
  	 */
  	/**
 @@ -1678,12 +1679,12 @@ Prado.WebUI.TRegularExpressionValidator = Class.extend(Prado.WebUI.TBaseValidato  	evaluateIsValid : function()
  	{
  		var value = this.getValidationValue();
 -	    if (value.length <= 0)
 +		if (value.length <= 0)
  	    	return true;
 -	    var rx = new RegExp(this.options.ValidationExpression);
 -	    var matches = rx.exec(value);
 -	    return (matches != null && value == matches[0]);
 +		var rx = new RegExp(this.options.ValidationExpression,this.options.PatternModifiers);
 +		var matches = rx.exec(value);
 +		return (matches != null && value == matches[0]);
  	}
  });
 diff --git a/framework/Web/UI/WebControls/TRegularExpressionValidator.php b/framework/Web/UI/WebControls/TRegularExpressionValidator.php index 125416f3..be861e45 100644 --- a/framework/Web/UI/WebControls/TRegularExpressionValidator.php +++ b/framework/Web/UI/WebControls/TRegularExpressionValidator.php @@ -96,7 +96,7 @@ class TRegularExpressionValidator extends TBaseValidator  	}
  	/**
 -	 * @param string pattern modifiers,
 +	 * @param string pattern modifiers for server side validation,
  	 * see http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php
  	 */
  	public function setPatternModifiers($value)
 @@ -113,6 +113,23 @@ class TRegularExpressionValidator extends TBaseValidator  	}
  	/**
 +	 * @param string pattern modifiers for clientside.
 +	 * (Only 'g','i' and 'm' are available.)
 +	 */
 +	public function setClientSidePatternModifiers($value)
 +	{
 +		$this->setViewState('ClientSidePatternModifiers', $value);
 +	}
 +
 +	/**
 +	 * @return string clientside pattern modifiers, no modifiers by default.
 +	 */
 +	public function getClientSidePatternModifiers()
 +	{
 +		return $this->getViewState('ClientSidePatternModifiers', '');
 +	}
 +
 +	/**
  	 * Returns an array of javascript validator options.
  	 * @return array javascript validator options.
  	 */
 @@ -120,6 +137,7 @@ class TRegularExpressionValidator extends TBaseValidator  	{
  		$options = parent::getClientScriptOptions();
  		$options['ValidationExpression']=$this->getRegularExpression();
 +		$options['PatternModifiers']=$this->getClientSidePatternModifiers();
  		return $options;
  	}
  }
 | 
