Um dia estava precisando realizar uma validação de entrada de dados em um campo de texto. Nesse campo de texto só seria permitido entrar valores nos seguintes padrões:
aaaaa
AAAA
aaa111
AAA111
AAaa111
áááÁÁÁÁ
a-a-a
_i-i-i-i
onde:
a: representa letra qualquer que pode ir de a - z
A: representa letra qualquer que pode ir de A - Z
1: número qualquer que pode ir de 0 - 9
á: representa letra acentuada qualquer que pode ir de à-ú
Á: representa letra acentuada qualquer que pode ir de À-Ú
_ e -: representam os caracteres _ e -
Não queria usar nenhum plugin jquery. Queria usar uma regex pois, queria algo performático. Realizando pesquisas atrás da regex, achei a solução no endereço (para quem estiver lendo esse post, recomendo olhar esse link).
http://aurelio.net/regex/guia/acentuacao.html#5_5
Analisando o conteúdo do link, montei minha regex, segue abaixo:
/^([a-zA-Zà-úÀ-Ú0-9]|-|_|\s)+$/
onde:
^ = Demarca início da linha.
[a-zA-Zà-úÀ-Ú0-9] = Representa uma letra qualquer que pode estar no intervalo de a-z ou, de A-Z, ou de à-ú, ou de À-Ú, ou um número que pode estar entre 0 ou 9.
| = Representa a operação lógica "or".
- e _ = Representam os caracteres - (hífen) e _ (underline), respectivamente.
\s = Encontra um caracter de espaço (whitespace).
+ = Representa 1 ou mais ocorrências de alguma coisa.
$ = Demarca fim de linha.
Importante: Para entender uma regex é necessário avaliar as partes em alguns momentos mas, em outros é necessário entender o todo.
Se, esta é sua primeira vez aqui no blog ou, é seu primeiro contato com regex, recomendo você dar uma olhadinha em outros posts:
http://precisoestudarsempre.blogspot.com.br/2013/03/mascara-para-valores-decimais-negativos.html
http://precisoestudarsempre.blogspot.com.br/2013/05/regex-para-datas-mascara-para-datas.html
http://precisoestudarsempre.blogspot.com.br/2013/06/regex-para-horas-mascara-para-horas.html
Recomendo também você dar uma olhadinha nesse link:
http://www.w3schools.com/jsref/jsref_obj_regexp.asp
Leia Mais ››
aaaaa
AAAA
aaa111
AAA111
AAaa111
áááÁÁÁÁ
a-a-a
_i-i-i-i
onde:
a: representa letra qualquer que pode ir de a - z
A: representa letra qualquer que pode ir de A - Z
1: número qualquer que pode ir de 0 - 9
á: representa letra acentuada qualquer que pode ir de à-ú
Á: representa letra acentuada qualquer que pode ir de À-Ú
_ e -: representam os caracteres _ e -
Não queria usar nenhum plugin jquery. Queria usar uma regex pois, queria algo performático. Realizando pesquisas atrás da regex, achei a solução no endereço (para quem estiver lendo esse post, recomendo olhar esse link).
http://aurelio.net/regex/guia/acentuacao.html#5_5
Analisando o conteúdo do link, montei minha regex, segue abaixo:
/^([a-zA-Zà-úÀ-Ú0-9]|-|_|\s)+$/
onde:
^ = Demarca início da linha.
[a-zA-Zà-úÀ-Ú0-9] = Representa uma letra qualquer que pode estar no intervalo de a-z ou, de A-Z, ou de à-ú, ou de À-Ú, ou um número que pode estar entre 0 ou 9.
| = Representa a operação lógica "or".
- e _ = Representam os caracteres - (hífen) e _ (underline), respectivamente.
\s = Encontra um caracter de espaço (whitespace).
+ = Representa 1 ou mais ocorrências de alguma coisa.
$ = Demarca fim de linha.
Importante: Para entender uma regex é necessário avaliar as partes em alguns momentos mas, em outros é necessário entender o todo.
Se, esta é sua primeira vez aqui no blog ou, é seu primeiro contato com regex, recomendo você dar uma olhadinha em outros posts:
http://precisoestudarsempre.blogspot.com.br/2013/03/mascara-para-valores-decimais-negativos.html
http://precisoestudarsempre.blogspot.com.br/2013/05/regex-para-datas-mascara-para-datas.html
http://precisoestudarsempre.blogspot.com.br/2013/06/regex-para-horas-mascara-para-horas.html
Recomendo também você dar uma olhadinha nesse link:
http://www.w3schools.com/jsref/jsref_obj_regexp.asp