Package org.apache.struts2.validator.validators

# Class RegexFieldValidator

java.lang.Object
org.apache.struts2.validator.validators.ValidatorSupport
org.apache.struts2.validator.validators.FieldValidatorSupport
org.apache.struts2.validator.validators.RegexFieldValidator

All Implemented Interfaces:
  `FieldValidator`, `ShortCircuitableValidator`, `Validator`

Direct Known Subclasses:
  `CreditCardValidator`, `EmailValidator`

public class RegexFieldValidator extends FieldValidatorSupport
Validates a string field using a regular expression.

- fieldName - The field name this validator is validating. Required if using Plain-Validator Syntax otherwise not required
- regexp - The RegExp expression
- caseSensitive - Boolean (Optional). Sets whether the expression should be matched against in a case-sensitive way. Default is `true`.
- trim - Boolean (Optional). Sets whether the expression should be trimmed before matching. Default is `true`.
- regexExpression - String (Optional). Defines regExp expression as an OGNL expression - will be evaluated to String
- caseSensitiveExpression - String (Optional). Defines caseSensitive param as an OGNL expression - will be evaluated to Boolean.
- trimExpression - String (Optional). Defines trim param as an OGNL expression - will be evaluated to Boolean

You can mix normal params with expression aware params but thus was not tested

Do not use ${regexExpression}, ${caseSensitiveExpression} and ${trimExpression} as an expression as this will turn into infinitive loop!

     <validators>
         <!-- Plain Validator Syntax -->
         <validator type="regex">
             <param name="fieldName">myStrangePostcode</param>
             <param name="regex"><![CDATA[([aAbBcCdD][123][eEfFgG][456])]]></param>
         </validator>

         <!-- Field Validator Syntax -->
         <field name="myStrangePostcode">
             <field-validator type="regex">
                 <param name="regex"><![CDATA[([aAbBcCdD][123][eEfFgG][456])]]></param>
             </field-validator>
         </field>

         <!-- Field Validator Syntax with expressions -->
         <field name="myStrangePostcode">
             <field-validator type="regex">
                 <param name="regexExpression">${regexValue}</param> <!-- will be evaluated as: String getRegexValue() -->
                 <param name="caseSensitiveExpression">${caseSensitiveValue}</param> <!-- will be evaluated as: boolean getCaseSensitiveValue() -->
                 <param name="trimExpression">${trimValue}</param> <!-- will be evaluated as: boolean getTrimValue() -->
             </field-validator>
         </field>
     </validators>

Author:
  Quake Wang

- ## Field Summary

  ### Fields inherited from class org.apache.struts2.validator.validators.FieldValidatorSupport

  `currentValue, fieldName, type`

  ### Fields inherited from class org.apache.struts2.validator.validators.ValidatorSupport

  `defaultMessage, EMPTY_STRING, messageKey, stack, textProviderFactory`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `RegexFieldValidator()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getRegex()`
  `boolean`
  `isCaseSensitive()`
  `boolean`
  `isTrimed()`
  `void`
  `setCaseSensitive(Boolean caseSensitive)`
  `void`
  `setCaseSensitiveExpression(String caseSensitiveExpression)`
  `void`
  `setRegex(String regex)`
  `void`
  `setRegexExpression(String regexExpression)`
  `void`
  `setTrim(Boolean trim)`
  `void`
  `setTrimExpression(String trimExpression)`
  Allows specify trim param as an OGNL expression
  `void`
  `validate(Object object)`
  The validation implementation must guarantee that setValidatorContext will be called with a non-null ValidatorContext before validate is called.
  `protected void`
  `validateFieldValue(Object object, String value, String regexToUse)`

  ### Methods inherited from class org.apache.struts2.validator.validators.FieldValidatorSupport

  `getCurrentValue, getFieldName, getValidatorType, setFieldName, setValidatorType`

  ### Methods inherited from class org.apache.struts2.validator.validators.ValidatorSupport

  `addActionError, addFieldError, getDefaultMessage, getFieldValue, getMessage, getMessageKey, getMessageParameters, getValidatorContext, isShortCircuit, parse, setDefaultMessage, setMessageKey, setMessageParameters, setShortCircuit, setTextProviderFactory, setValidatorContext, setValueStack`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.struts2.validator.Validator

  `getDefaultMessage, getMessage, getMessageKey, getMessageParameters, getValidatorContext, setDefaultMessage, setMessageKey, setMessageParameters, setValidatorContext, setValueStack`

- ## Constructor Details

  - ### RegexFieldValidator

    public RegexFieldValidator()

- ## Method Details

  - ### validate

    public void validate(Object object) throws ValidationException
    Description copied from interface: `Validator`
    The validation implementation must guarantee that setValidatorContext will be called with a non-null ValidatorContext before validate is called.
    Parameters:
      `object` - the object to be validated.
    Throws:
      `ValidationException` - is thrown if there is validation error(s).

  - ### validateFieldValue

    protected void validateFieldValue(Object object, String value, String regexToUse)

  - ### getRegex

    public String getRegex()
    Returns:
      Returns the regular expression to be matched.

  - ### setRegex

    public void setRegex(String regex)
    Parameters:
      `regex` - the regular expression to be matched

  - ### setRegexExpression

    public void setRegexExpression(String regexExpression)
    Parameters:
      `regexExpression` - the regular expression as an OGNL expression to be matched

  - ### isCaseSensitive

    public boolean isCaseSensitive()
    Returns:
      Returns whether the expression should be matched against in a case-sensitive way. Default is `true`.

  - ### setCaseSensitive

    public void setCaseSensitive(Boolean caseSensitive)
    Parameters:
      `caseSensitive` - whether the expression should be matched against in a case-sensitive way. Default is `true`.

  - ### setCaseSensitiveExpression

    public void setCaseSensitiveExpression(String caseSensitiveExpression)
    Parameters:
      `caseSensitiveExpression` - Allows specify caseSensitive param as an OGNL expression

  - ### isTrimed

    public boolean isTrimed()
    Returns:
      Returns whether the expression should be trimed before matching. Default is `true`.

  - ### setTrim

    public void setTrim(Boolean trim)
    Parameters:
      `trim` - whether the expression should be trimed before matching. Default is `true`.

  - ### setTrimExpression

    public void setTrimExpression(String trimExpression)
    Allows specify trim param as an OGNL expression
    Parameters:
      `trimExpression` - trim param as an OGNL expression