Mask Type: Simplified Regular Expressions
- 4 minutes to read
Simplified regular expressions allow you to specify the entered text’s pattern.
Run the following Demo Center module to test various mask types: Mask Box.
Tip
Simplified regular expressions support backward compatibility with XtraEditors version 2. We recommend that you use the RegEx type syntax because it supports additional features like alternative validation and autocomplete.
Metacharacters
Metacharacters specify characters users can enter at the corresponding positions. The table below lists the available metacharacters.
Character | Description |
---|---|
. |
Any single character. |
[aeiou] |
Any single character from the specified character set. |
[^aeiou] |
Any single character not from the specified character set. |
[0-9a-fA-F] |
Any single character from the specified character range. |
\w |
Any single alphanumeric character. The same as [a-zA-Z_0-9] . |
\W |
Any single non-alphanumeric character. The same as [^a-zA-Z_0-9] . |
\d |
Any single numeric character. The same as [0-9] . |
\D |
Any single non-numeric character. The same as [^0-9] . |
Quantifiers
Quantifiers follow a metacharacter and specify how many times the character should be repeated. The table below lists the available qualifiers.
Quantifier | Description | Examples |
---|---|---|
* |
Zero or more matches. The same as {0,} . |
[a-zA-Z]* , \w* |
+ |
One or more matches. The same as {1,} . |
[a-zA-Z]+ , \w+ |
? |
Zero or one matches. The same as {0,1} . |
[a-zA-Z]? , \w? |
{n} |
Exactly n matches. | [0-9]{2} |
{n,} |
At least n matches. | [0-9]{2,} |
{n,m} |
At least n, but not more than m matches. | [0-9]{2,7} |
Special Characters
Special characters convert the entered text to uppercase/lowercase, insert delimiters and currency symbols. The table below lists the available special characters.
Character | Description |
---|---|
> |
Converts subsequent characters to uppercase. |
< |
Converts subsequent characters to lowercase. |
<> |
Discards case conversion for subsequent characters. |
/ |
Separates months, days, and years. The culture’s DateSeparator property specifies the actual character. |
: |
Separates hours, minutes, and seconds. The culture’s TimeSeparator property specifies the actual character. |
$ |
Inserts the currency symbol. The culture’s CurrencySymbol property specifies the actual character. |
Literal Characters
Literal characters are arbitrary read-only characters in the edit box. If you add a character that is not a meta or special character into a mask expression, the character is displayed in the edit box as is. To display a meta or special character as a literal, precede it with a backslash.
Examples
Example 1
[0-9A-F]*
- a mask to enter hexadecimal values of any length.
Example 2
[0-9A-F]{2,}
- a mask to enter a hexadecimal value that consists of at least two digits.
If the user enters less than two digits, the editor displays a notification.
Example 3
\d*\.\d{2}
- a mask to enter a number that has two decimal digits.
Regular Expression Settings
When you click the ellipsis button next to the MaskSettings property, the Mask Settings dialog appears. Click “Show Advanced Options” in the bottom left corner to view optional Regular Expression settings.
“Placeholder character”
Allows you to choose a character displayed for empty metacharacters. The default placeholder character is underscore (“_”).
//Fluent API
using DevExpress.XtraEditors.Mask;
textEdit5.Properties.MaskSettings.Configure<MaskSettings.Regular>(settings => {
settings.MaskExpression = "[0-9A-Z]{10}";
settings.Placeholder = 'X';
});
//regular API
using DevExpress.XtraEditors.Mask;
var settings = textEdit5.Properties.MaskSettings.Configure<MaskSettings.Regular>();
settings.MaskExpression = "[0-9A-Z]{10}";
settings.Placeholder = 'X';
//Data Annotation Attribute (for code-first sources)
using System.ComponentModel.DataAnnotations;
[RegularEditMask("[0-9A-Z]{10}", Placeholder = 'X')]
public string ID { get; set; }
“Save static literals to edit value”
This property specifies whether read-only literal characters should be saved to the editor’s EditValue. For example, if the editor mask is “ID: [0-9A-Z]{10}”, the editor saves only ten digits as its EditValue
if this property is disabled, and the entire “ID: 1234567890” string if enabled.
//Fluent API
using DevExpress.XtraEditors.Mask;
textEdit5.Properties.MaskSettings.Configure<MaskSettings.Regular>(settings => {
settings.MaskExpression = "[0-9A-Z]{10}";
settings.SaveLiterals = true
});
//regular API
using DevExpress.XtraEditors.Mask;
var settings = textEdit5.Properties.MaskSettings.Configure<MaskSettings.Regular>();
settings.MaskExpression = "[0-9A-Z]{10}";
settings.SaveLiterals = true
//Data Annotation Attribute (for code-first sources)
using System.ComponentModel.DataAnnotations;
[RegularEditMask("[0-9A-Z]{10}", SaveLiterals = true)]
public string ID { get; set; }