|
GRUPOS DE DISCUSSÃO PROFISSIONAL WINDEV, WEBDEV e WINDEV Mobile |
| | | | | |
Inicio → WINDEV 25 → WX - Expressão Regular - Mascaras - Validação de Campo - Picture |
WX - Expressão Regular - Mascaras - Validação de Campo - Picture |
Iniciado por BOLLER, dez., 26 2016 11:05 AM - 5 respostas |
| |
| | | |
|
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 26 2016 - 11:05 AM |
Prezados,
Segue exemplos de como usar Expressão Regular - Mascaras - Validação de Campo - Picture
E o que é Expressão Regular?
Em ciência da computação, uma expressão regular (ou o estrangeirismo regex, abreviação do inglês regular expression) provê uma forma concisa e flexível de identificar cadeias de caracteres de interesse, como caracteres particulares, palavras ou padrões de caracteres. Expressões regulares são escritas numa linguagem formal que pode ser interpretada por um processador de expressão regular, um programa que serve um gerador de analisador sintático ou examina o texto e identifica as partes que casam com a especificação dada.
O termo deriva do trabalho do matemático norte-americano Stephen Cole Kleene, que desenvolveu as expressões regulares como uma notação ao que ele chamava de álgebra de conjuntos regulares. Seu trabalho serviu de base para os primeiros algoritmos computacionais de busca, e depois para algumas das mais antigas ferramentas de tratamento de texto da plataforma Unix.
O uso atual de expressões regulares inclui procura e substituição de texto em editores de texto e linguagens de programação, validação de formatos de texto (validação de protocolos ou formatos digitais), realce de sintaxe e filtragem de informação.
Maiores informações https://pt.wikipedia.org/wiki/Express%C3%A3o_regular http://turing.com.br/material/regex/introducao.html https://msdn.microsoft.com/pt-br/library/az24scfc(v=vs.110).aspx
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 9949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensagem modificada, dezembro, 26 2016 - 11:06 AM |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 05 2019 - 2:51 PM |
Expressão regular (REGEXP): Exemplo de campo texto que só recebe números e ponto
Edt_Campo..InputMask = "regexp:[0-9]{0,9}[.]{0,1}[0-9]{0,9}"
O campo vai receber valores iguais a 0123456789.0123456789 10 números inteiros até 10 casas decimais usando ponto como valor decimal
Edt_Campo..InputMask = "regexp:[0-9]{0,9}[.]{0,1}[0-9]{0,2}"
O campo vai receber valores iguais a 0123456789.01 10 números inteiros até 2 casas decimais usando ponto como valor decimal
IMPORTANTE: Use o evento "Whenever modifying" / "Sempre que modificar", assim cada caracter que for digitado imediatamente valida o campo.
Edt_Campo..InputMask = "regexp:[0-5]{0,5}[.]{0,1}[0-9]{0,2}"
O campo vai receber valores iguais a 012345.01 6 números inteiros com até 2 casas decimais usando ponto como valor decimal
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 05 2019 - 3:48 PM |
Detalhe importante de reposicionar o cursor para o final da linha enquanto valida a máscara: Exemplo:
EDT_VALOR_MAXIMO_RESPOSTA..InputMask = "regexp:[0-9]{0,9}[.]{0,1}[0-9]{0,9}" EDT_VALOR_MAXIMO_RESPOSTA..CursorEnd = Length (EDT_VALOR_MAXIMO_RESPOSTA) + 1 EDT_VALOR_MAXIMO_RESPOSTA..Cursor = EDT_VALOR_MAXIMO_RESPOSTA..CursorEnd
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensagem modificada, dezembro, 05 2019 - 3:48 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 05 2019 - 9:52 PM |
SYNTAX REGEXP
\ Indica que o próximo caractere é um caractere específico. Por exemplo, \ n indica um avanço de linha. Esse personagem também permite que você use um personagem sem considerá-lo como um meta caractere (por exemplo: "\\" indica que "\" é o personagem procurado)
* Indica que a sequência de caracteres que precede esse símbolo pode aparecer 0 ou várias vezes. O símbolo * é equivalente a {0,}.
+ Indica que a sequência de caracteres que precede este símbolo pode aparecer 1 vez ou várias vezes. O símbolo + é equivalente a {1,}.
? Indica que a sequência de caracteres que precede esse símbolo pode aparecer 0 ou uma vez. O? símbolo é equivalente a {0, 1}.
. Indica que a sequência de caracteres que precede esse símbolo pode ser qualquer caractere, exceto um salto de linha.
Indica que a sequência de caracteres pode corresponder ao modelo OR ao modelo.
{} Indica que a sequência de caracteres que precede esse símbolo pode aparecer várias vezes.
{,} Indica que a sequência de caracteres que precede esse símbolo pode aparecer vezes ou mais que vezes.
{,} Indica que a sequência de caracteres que precede esse símbolo pode aparecer entre e as horas.
[abc] Indica que a sequência de caracteres deve ser 'abc'.
[015] Indica que a sequência de caracteres deve ser '015'.
[a-z] Indica que o caractere deve ser incluído entre 'a' e 'z'.
[A-Z] Indica que o caractere deve ser incluído entre 'A' e 'Z'.
[0-9] Indica que o caractere deve ser um dígito incluído entre '0' e '9'.
... Vários outros meta caracteres estão disponíveis. Você pode encontrar as seqüências solicitadas na Internet (palavras-chave "exemplo de expressão regular").
\ Indicates that the next character is a specific character. For instance, \n indicates a line feed. This character also enables you to use a character without considering it as a meta character (for example: "\\" indicates that "\" is the sought character)
* Indicates that the sequence of characters preceding this symbol can appear 0 time or several times. The * symbol is equivalent to {0, }.
+ Indicates that the sequence of characters preceding this symbol can appear 1 time or several times. The + symbol is equivalent to {1, }.
? Indicates that the sequence of characters preceding this symbol can appear 0 time or one time. The? symbol is equivalent to {0, 1}.
. Indicates that the sequence of characters preceding this symbol can be any character except for a line skip.
| Indicates that the sequence of characters may correspond to model OR to model .
{} Indicates that the sequence of characters preceding this symbol can appear times.
{,} Indicates that the sequence of characters preceding this symbol can appear times or more than times.
{,} Indicates that the sequence of characters preceding this symbol can appear between and times.
[abc] Indicates that the sequence of characters must be 'abc'.
[015] Indicates that the sequence of characters must be '015'.
[a-z] Indicates that the character must be included between 'a' and 'z'.
[A-Z] Indicates that the character must be included between 'A' and 'Z'.
[0-9] Indicates that the character must be a digit included between '0' and '9'.
... Several other meta characters are available. You may find the requested sequences on Internet ("example regular expression" keywords).
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/Mensagem modificada, dezembro, 05 2019 - 9:53 PM |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em dezembro, 05 2019 - 9:52 PM |
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | |
| |
Membro registado 3.655 mensagems Popularité : +175 (223 votes) |
|
Publicado em janeiro, 02 2020 - 3:09 PM |
Para colocar o cursor no final da linha sempre
EDT_VALOR_MAXIMO_RESPOSTA..CursorEnd = Length (EDT_VALOR_MAXIMO_RESPOSTA) + 1 EDT_VALOR_MAXIMO_RESPOSTA..Cursor = EDT_VALOR_MAXIMO_RESPOSTA..CursorEnd
-- Adriano José Boller ______________________________________________ Consultor e Representante Oficial da PcSoft no Brasil +55 (41) 99949 1800 adrianoboller@gmail.com skype: adrianoboller http://wxinformatica.com.br/ |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|