Duvida no RegEX

1. Duvida no RegEX

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 10/11/2019 - 17:42h

Pessoas ... tem como fazer regex para validar telefone fixo ou celular ??

seria assim ?
[0-9]{10}||[0-9]{11} 


OBS: essa validação é para um input [pattern] no html5


  


2. Re: Duvida no RegEX

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/11/2019 - 19:27h


Mauriciodez escreveu:

Pessoas ... tem como fazer regex para validar telefone fixo ou celular ??

seria assim ?
[0-9]{10}||[0-9]{11} 


OBS: essa validação é para um input [pattern] no html5

Maurício,
Partindo do princípio que o número de celular inicia com "9", fica mais prático.
Considerando o DDD, é o 3° dígito.
If grep -E '^([0-9]{2}9[0-9]{8})$';then
echo celular
elif grep -E '^([0-9]{10})$';then
echo fixo
fi

Faça um teste...
Não estou no pinguim...
Importante: echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


3. Re: Duvida no RegEX

André Gonçalo
SnwMds

(usa Debian)

Enviado em 10/11/2019 - 22:56h

Mauriciodez escreveu:

Pessoas ... tem como fazer regex para validar telefone fixo ou celular ??

seria assim ?
[0-9]{10}||[0-9]{11} 


OBS: essa validação é para um input [pattern] no html5


Sua expressão funciona para sequências simples de números, mas é bem limitada em certos aspectos. Dê uma olhada na expressão regular abaixo:

^(?:\+55)?\s?\(?0?[1-9][1-9]\)?\s?(?:9)?\s?\d{4}\-?\d{4}$ 


Explicação

A expressão regular acima irá dar "match" em números como:

+55 21 9 9999-9999 # Sequência com: espaços, código do país, nono dígito (celular) e um hífen "-"
+55 (21) 9 9999-9999 # Sequência com espaços: parênteses "()", código do país, nono dígito (celular) e um hífen "-"
21999999999 # Sequência sem: espaços, parênteses "()", código do país e/ou hífen "-"


Outros exemplos de match:

219999-9999
2199999999
1199999999


A expressão regular acima NÃO irá dar "match" em:

* Números cujo o DDD é inferior a 11
* Números cujo o DDD é superior a 99
* Números cujo o DDD possui menos ou mais que 2 dígitos
* Números cujo o DDD possui mais que 2 dígitos
* Números que possuem menos ou mais que 8 dígitos (isso não inclui o código do país, DDD e/ou o nono dígito)
* Números sem DDD