UIX 2.2.16

oracle.cabo.ui.validate
Class RegExpValidater

java.lang.Object
  |
  +--oracle.cabo.ui.validate.BaseClientValidater
        |
        +--oracle.cabo.ui.validate.RegExpValidater
All Implemented Interfaces:
ClientValidater, ServerValidater

public class RegExpValidater
extends BaseClientValidater
implements ServerValidater

Validater using regular expressions to validate Strings. The Java implementation of the validation uses the Apache regular expression engine Jakarta-Regexp in the package org.apache.regexp.

Note that as JavaScript regular expression syntax is a subset of this syntax, not all valid server-side regular expressions can be used for client validation.

The full regular expression syntax accepted by the RegExpValidater is described here:

 
Characters
unicodeChar Matches any identical unicode character \ Used to quote a meta-character (like '*') \\ Matches a single '\' character \0nnn Matches a given octal character \xhh Matches a given 8-bit hexadecimal character \\uhhhh Matches a given 16-bit hexadecimal character \t Matches an ASCII tab character \n Matches an ASCII newline character \r Matches an ASCII return character \f Matches an ASCII form feed character
Character Classes
[abc] Simple character class [a-zA-Z] Character class with ranges [^abc] Negated character class
Standard POSIX Character Classes
[:alnum:] Alphanumeric characters. [:alpha:] Alphabetic characters. [:blank:] Space and tab characters. [:cntrl:] Control characters. [:digit:] Numeric characters. [:graph:] Characters that are printable and are also visible. (A space is printable, but not visible, while an `a' is both.) [:lower:] Lower-case alphabetic characters. [:print:] Printable characters (characters that are not control characters.) [:punct:] Punctuation characters (characters that are not letter, digits, control characters, or space characters). [:space:] Space characters (such as space, tab, and formfeed, to name a few). [:upper:] Upper-case alphabetic characters. [:xdigit:] Characters that are hexadecimal digits.
Non-standard POSIX-style Character Classes
[:javastart:] Start of a Java identifier [:javapart:] Part of a Java identifier
Predefined Classes
. Matches any character other than newline \w Matches a "word" character (alphanumeric plus "_") \W Matches a non-word character \s Matches a whitespace character \S Matches a non-whitespace character \d Matches a digit character \D Matches a non-digit character
Boundary Matchers
^ Matches only at the beginning of a line $ Matches only at the end of a line \b Matches only at a word boundary \B Matches only at a non-word boundary
Greedy Closures
A* Matches A 0 or more times (greedy) A+ Matches A 1 or more times (greedy) A? Matches A 1 or 0 times (greedy) A{n} Matches A exactly n times (greedy) A{n,} Matches A at least n times (greedy) A{n,m} Matches A at least n but not more than m times (greedy)
Reluctant Closures
A*? Matches A 0 or more times (reluctant) A+? Matches A 1 or more times (reluctant) A?? Matches A 0 or 1 times (reluctant)
Logical Operators
AB Matches A followed by B A|B Matches either A or B (A) Used for subexpression grouping
Backreferences
\1 Backreference to 1st parenthesized subexpression \2 Backreference to 2nd parenthesized subexpression \3 Backreference to 3rd parenthesized subexpression \4 Backreference to 4th parenthesized subexpression \5 Backreference to 5th parenthesized subexpression \6 Backreference to 6th parenthesized subexpression \7 Backreference to 7th parenthesized subexpression \8 Backreference to 8th parenthesized subexpression \9 Backreference to 9th parenthesized subexpression

All closure operators (+, *, ?, {m,n}) are greedy by default, meaning that they match as many elements of the string as possible without causing the overall match to fail. If you want a closure to be reluctant (non-greedy), you can simply follow it with a '?'. A reluctant closure will match as few elements of the string as possible when finding matches. {m,n} closures don't currently support reluctancy.


Fields inherited from interface oracle.cabo.ui.validate.ServerValidater
NO_CONTENT_ERROR_OFFSET, UNKNOWN_ERROR_OFFSET
 
Constructor Summary
RegExpValidater(java.lang.String pattern)
          Creates the regular expression validate with the specified regular expression pattern
 
Method Summary
protected  java.lang.String getHTMLLibReference()
          Returns the name of the Javascript code that this validator requires.
protected  java.lang.String getHTMLValidation(RenderingContext context)
           
 java.lang.String getPattern()
           
 java.text.ParseException[] validate(RenderingContext context, java.lang.String value)
           
 
Methods inherited from class oracle.cabo.ui.validate.BaseClientValidater
getLookAndFeelString, getValidation, getValidationFormat, getWMLValidation, logError, writeDependencies
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

RegExpValidater

public RegExpValidater(java.lang.String pattern)
Creates the regular expression validate with the specified regular expression pattern
Method Detail

getPattern

public final java.lang.String getPattern()

validate

public java.text.ParseException[] validate(RenderingContext context,
                                           java.lang.String value)
Specified by:
validate in interface ServerValidater

getHTMLValidation

protected java.lang.String getHTMLValidation(RenderingContext context)
Overrides:
getHTMLValidation in class BaseClientValidater

getHTMLLibReference

protected java.lang.String getHTMLLibReference()
Returns the name of the Javascript code that this validator requires.
Overrides:
getHTMLLibReference in class BaseClientValidater

UIX 2.2.16