Yes, the most basic verification would be to make a field required. You can do this by selecting the checkbox
required field in the field's options in
reservation form layout.
If you want to do a more complex verification, you'll need to add a pricing manager rule (
here) of type
reservation form item. You'll need to select the text field you want to verify and then the option
value should be set to make sure any invalid value cannot be accepted on the reservation form.
There are several possibilities of what you can enter as
value:
- ABC* or *ABC: this will cause the pricing manager rule to be used when the entered value includes the text (here: ABC) at the beginning or at the end
- <10 or >10: this will cause the rule to be used when the entered value is a number greater than or less than the specified number (here 10)
- regex:... or noregex:... will cause the rule to be used when the entered regex pattern matches the value entered by the customer (or doesn't match in case of the noregex: prefix) - this lets you validate the field by checking its length, making sure all characters are valid etc. - see below for more about regex matching and some examples
With such configuration, when a customer enters a value which matches the pricing manager rule, the price calculated so far can be altered - but in this scenario we want to display an error message instead of setting a price. In order to do this, you'll need to choose:
unavailability message instead of the price unit (such as
EUR per day or
EUR) and type the error text in place of the price. Also, if you want the error to be printed if there is NO match (e.g. if the entered text does NOT have given prefix) then you'll need to add another rule of type
always true whose advanced condition will say
apply this rule only if none of the rules were applied and select your
reservation form item rule.
Advanced regex pattern matching
Regular expressions (regex) allow you to perform an advanced verification of the entered value. You can use it e.g. to make sure the entered value has a correct license plate format, or simply to make sure the entered value is a text between X and Y characters (or upper-case letters or alphanumeric characters etc.). Almost any types of rules can be created using regex pattern matching, you will find many resources on the Internet (e.g.
here or
here) which will help you to generate the correct regex pattern.
Regex-based pattern can be entered as a rule value by using the
regex: or
noregex: prefix. Below are some examples you can use:
regex:/^[A-Z0-9]{4,6}$/ will cause the rule to be used when the value is composed of 4 to 6 alphanumeric characters
noregex:/^[A-Z0-9]{4,6}$/ will cause the rule to be used when the value doesn't match this pattern - this allows you to directly enter an unavailability message in the same rule instead of adding the always true rule with the condition.
noregex:/^[A-Z.]+$/i will display your error message if the value includes any characters other than letters (lower- or upper-case will be accepted) or a dot/period
noregex:/^[0-9]{4,6}$/ will display your error message if the value is not a number or if it's a number having less than 4 or more than 6 digits
noregex:/^ABC[0-9]{4}$/ will display your error message if the value doesn't match the following format: a four-digit number prefixed with ABC, e.g. ABC0001 or ABC6789
noregex:/^(ABC|DEF)[0-9]{4}$/ same as above but also allows for the DEF prefix, e.g. ABC0001 or DEF6789
noregex:/^https?://[^s/$.?#].[^s]*$/ will show an error message if the value is not a URL
noregex:/^[A-Za-z0-9._%+-]+@[A-Za-z0–9.-]+.[A-Z|a-z]{2,}$/ will show an error message if the value is not an email address
noregex:/^d{4}-d{1,2}-d{1,2}$/ will show an error message if the value is not a date in the format YYYY-MM-DD
Note that if the value of a field is empty and when using the noregex syntax, the regular expression pattern will be ignored and the rule will not be applied (and so the error message will not be displayed for the empty value). Please see the note about the
required field option at the top of this page if you wish to force the customer to enter a value into a field.