com.opensymphony.xwork2.validator.validators

## Class RegexFieldValidator

- java.lang.Object
- - com.opensymphony.xwork2.validator.validators.ValidatorSupport
  - - com.opensymphony.xwork2.validator.validators.FieldValidatorSupport
    - - com.opensymphony.xwork2.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 com.opensymphony.xwork2.validator.validators.FieldValidatorSupport

      `currentValue, fieldName, type`

    - ### Fields inherited from class com.opensymphony.xwork2.validator.validators.ValidatorSupport

      `defaultMessage, EMPTY_STRING, messageKey, stack, textProviderFactory`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `RegexFieldValidator()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and 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 com.opensymphony.xwork2.validator.validators.FieldValidatorSupport

      `getCurrentValue, getFieldName, getValidatorType, setFieldName, setValidatorType`

    - ### Methods inherited from class com.opensymphony.xwork2.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 com.opensymphony.xwork2.validator.Validator

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

- - ### Constructor Detail

    - #### RegexFieldValidator

          public RegexFieldValidator()

  - ### Method Detail

    - #### 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

Copyright © 2000–2021 Apache Software Foundation. All rights reserved.