The Validation (Regex) property helps you define a set of validation options for a given field.
In general, this field property is used to perform validation checks (format, length, etc.) on the value that the user enters in a field. If the user enters a value that does not pass these checks, it will throw an error.
You can define validation rules by specifying custom validation regular expressions in this property.
Let’s consider a few examples:
- Email: If you want to check whether the user has entered a valid email address in the email field, you can specify the following regex code in the Validation (Regex) property:
- URL: To check whether a URL entered by a user is valid, you can use the following regex code in the Validation (Regex) property:
- Date: To check whether the date entered by a user is in a valid format, you can define the following regex code. The following code will check whether the entered value is in one of the "dd/mm/yyyy," "dd-mm-yyyy," or "dd.mm.yyyy" formats. It will also validate leap years.
Prevent Catastrophic Backtracking
When a regular expression either contains a complex validation logic or receives a lengthy input string, executing the validation check becomes time-consuming. The browser has to make millions of backtracking trips through the input string to meet the defined regex validation checks. Regular expressions like these either end up freezing the browser or utilizing 100% of the CPU core process. This issue is known as "catastrophic backtracking."
You can solve this problem in two ways:
- Rewrite the regular expression to lower the possible combinations attempted while backtracking
- Use lookahead to prevent backtracking
Learn more about catastrophic backtracking here.
Additional Resource: Catastrophic backtracking can cause a regular expression denial of service (ReDOS) attack. Read more.
To search for invalid regexes within your stack, please refer to our Regex Validation CLI Plugin guide.
Learn more about regular expressions in the official documentation.