Este tópico fornece orientações para ajudá-lo a criar uma máscara com uma expressão regular. Para mais informações sobre a linguagem de expressões regulares, veja https://msdn.microsoft.com/pt-br/library/az24scfc(v=vs.110).aspx. Uma vez criada, você pode validar a expressão em https://regexr.com/. Abaixo estão listados os componentes que podem ser utilizados em máscaras com expressão regular para atributos do tipo Texto.
• Meta-caracteres: são utilizados para indicar um intervalo de símbolos correspondente ao texto válido que o usuário deve inserir no campo configurado.
. – especifica que qualquer caractere pode ser utilizado.
^[aeiou]*$ – especifica os caracteres que devem ser utilizados. Nesse caso, por exemplo, o usuário deve utilizar apenas as letras "a", "e", "i", "o" ou "u".
[^aeiou] – especifica os caracteres que não podem ser utilizados. Nesse caso, por exemplo, o usuário só não pode utilizar as letras "a", "e", "i", "o" ou "u".
[a-zA-Z0-9] – especifica o intervalo de caracteres ou números que podem ser utilizados. Nesse caso, por exemplo, o usuário pode utilizar letras de "a" a "z", maiúsculas ou minúsculas, e números de 0 a 9.
\w – especifica que quaisquer caracteres alfanuméricos podem ser utilizados. É equivalente a expressão [a-zA-Z0-9].
\W – especifica que quaisquer caracteres que não sejam alfanuméricos podem ser utilizados. É equivalente a expressão [^a-zA-Z0-9].
\d – especifica que quaisquer dígitos decimais podem ser utilizados. É equivalente a expressão [0-9].
\D – especifica que quaisquer caracteres que não sejam dígitos podem ser utilizados. É equivalente a expressão [^0-9].
• Quantificadores: são caracteres que indicam a quantidade de repetições das expressões anteriores a eles.
* – especifica zero ou mais repetições. Por exemplo, a expressão [a-z]* indica que o usuário deve inserir nenhuma ou qualquer letra de "a" a "z" para que o texto seja considerado válido.
+ – especifica uma ou mais repetições. Por exemplo, a expressão [0-9]+ indica que o usuário deve inserir um ou mais dígitos de 0 a 9 para que o texto seja considerado válido.
? – especifica zero ou uma repetição. Por exemplo, a expressão [http://]? indica que o usuário deve inserir "http://" nenhuma ou uma vez para que o texto seja considerado válido.
{n} – especifica exatamente a quantidade de repetições que deve ser inserida. Por exemplo, a expressão [aeiou]{2} indica que o usuário deve inserir duas das vogais indicadas, "aa", "ae", "io", "ii" e assim por diante.
{n,} – especifica no mínimo "n" repetições. Por exemplo, a expressão [A-Z]{3,} indica que o usuário deve inserir no mínimo três das letras indicadas, "AAA", "XPTO", "XYZAA" e assim por diante.
{n,m} – especifica no mínimo "n" repetições e no máximo "m" repetições. Por exemplo, a expressão [0-9]{2,3} indica que o usuário deve inserir no mínimo dois e no máximo três dígitos de 0 a 9, "123", "247", "27", "333", e assim por diante.
• Operador OU: é utilizado para indicar condições que devem ser cumpridas para que o texto inserido no campo seja válido.
| – esse símbolo é utilizado para indicar uma disjunção exclusiva. Por exemplo, a expressão [(http://|ftp://)?] indica que o usuário deve inserir "http://" ou "ftp://" para que o texto seja considerado válido.
• Caracteres especiais: são utilizados para representar delimitadores e símbolos monetários.
/ – esse caractere é utilizado para separar mês, dia e ano nos valores das datas. Ele pode variar de acordo com a cultura, e pode ser substituído pela opção pertinente. Por exemplo, para inserir uma data, o usuário deve digitar os dois dígitos do dia, "/", os dois dígitos do mês, "/" e os quatro dígitos do ano. Se um ponto "." ou outro símbolo for utilizado para separar datas, isso deve ser indicado na máscara com expressão regular, e o usuário deverá digitar o ponto ou o símbolo definido, para fazer a separação.
: – esse caractere é utilizado para separar a hora, os minutos e os segundos. Ele pode variar de acordo com a cultura, e pode ser substituído pela opção pertinente. "Por exemplo, para inserir uma data o usuário deve inserir os dígitos da hora, ":" e os dígitos dos minutos. Se um ponto "." ou outro símbolo for utilizado para separar a hora dos minutos, isso deve ser indicado na máscara com expressão regular, e o usuário deverá inserir o ponto ou o símbolo definido, para fazer a separação.
$ – esse caractere é utilizado para indicar um valor monetário. Ele pode variar de acordo com a cultura, e pode ser substituído ou complementado. Por exemplo, para inserir um valor monetário em dólares, o usuário deve digitar o cifrão ($) e os dígitos que formam o valor. Se a moeda utilizada for real (R$), isso deve ser indicado na máscara com expressão regular e o usuário deve inserir o "R$" antes dos dígitos para indicar a moeda desejada.
• Caracteres literais: são caracteres que não são utilizados para representar um meta-caractere, quantificador, operador ou caracteres especiais. Se desejar utilizar um caractere reservado como um caractere literal, digite uma barra invertida (\) antes dele. Por exemplo, se desejar literalmente inserir um ponto no texto, insira a barra invertida antes dele, "([a-z]\.[a-z])".
• Exemplos de máscaras com expressão regular: os componentes acima devem ser combinados conforme necessário para criar as expressões regulares desejadas. Vale observar que os parênteses devem ser utilizados para associar expressões.
o Data (dd/mm/aaaa): ^([0-9]|[0,1,2][0-9]|3[0,1])/([1-9]|0[1-9]|1[0-2])/\d{4}
([um número entre 0 e 9], ou [o número 0, 1 ou 2] [seguido de um número de 0 a 9], ou o número 3 [seguido de 0 ou 1]), "/", ([um número entre 1 e 9], ou o número 0 [seguido de um número de 1 a 9], ou o número 1 [seguido de 0, 1 ou 2]), "/", um número entre 0 e 9 {com exatamente quatro repetições}.
o E-mail: ([0-9a-zA-Z]+([_.-]?[0-9a-zA-Z]+)*@[0-9a-zA-Z]+[0-9,a-z,A-Z,.,-]*(\.){1}[a-zA-Z]{2,4})+
([um número entre 0 e 9, letras de "a" a "z" maiúsculas ou minúsculas] repetidas uma ou mais vezes (["_", ".", "-"] repetidos zero ou uma vez [um número entre 0 e 9, letras de "a" a "z" maiúsculas ou minúsculas] repetidas uma ou mais vezes) essa expressão deve ser inserida zero ou mais vezes, "@", [um número entre 0 e 9, letras de "a" a "z" maiúsculas ou minúsculas] repetidas uma ou mais vezes [um número entre 0 e 9, letras de "a" a "z" maiúsculas ou minúsculas, ".", "-"] essa expressão deve ser inserida zero ou mais vezes; digite um ponto apenas uma vez [letras de "a" a "z" maiúsculas ou minúsculas]{repetidas duas vezes no mínimo e quatro no máximo}, um e-mail nesse formato pode ser inserido uma ou mais vezes.
o Arquivo de imagem: [a-zA-Z0-9-_\.]+\.(jpg|gif|png)
[letras de "a" a "z" maiúsculas ou minúsculas, um número entre 0 e 9, "_" ou um "."] repetidos uma ou mais vezes, digite um ponto, (jpg ou gif ou png)
o Endereço IP: ((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})
((o número 25 [seguido de um número de 0 a 5], ou [o número 2 seguido de um número de 0 a 4], [seguido de um número de 0 a 9], ou o número 1 [seguido de um número de 0 a 9] {repetido duas vezes}, ou [um número de 0 a 9] {repetido no mínimo uma e no máximo duas vezes}), digite um ponto, {essa primeira expressão deve ser repetida três vezes}, (o número 25 [seguido de um número de 0 a 5], ou o número 2 [seguido de um número de 0 a 4] [seguido de um número de 0 a 9], ou o número 1 [seguido de um número de 0 a 9] {repetido duas vezes}, ou [um número de 0 a 9] {repetido no mínimo uma e no máximo duas vezes})
o Hora (hh:mm): ([0-1][0-9]|[2][0-3])(:([0-5][0-9])){1}
([um número de 0 a 1] [seguido de um número de 0 a 9] ou [o número 2] [seguido de um número de 0 a 3]), (digite dois pontos ([um número de 0 a 5][seguido de um número de 0 a 9])) {essa expressão deve ser inserida uma vez}
o URL: (http[s]?://|ftp://)?(www\.)?[a-zA-Z0-9\.]+\.(com|org|net|mil|edu|ca|co.uk|com.au|gov|br)
(http [com s ou não]:// ou ftp://) inserido nenhuma ou uma vez, (digite "www" e um ponto) repetido zero ou uma vez [letras de "a" a "z" maiúsculas ou minúsculas, um número entre 0 e 9, ".",} repetidos uma ou mais vezes, digite um ponto, (e digite "com", "org", "net", "mil", "edu", "ca", "co.uk", "com.au", "gov" ou "br")