Se você não sabe o que são expressões regulares (Reges), por favor veja meu primeiro artigo sobre elas.
As expressões regulares são muito úteis para buscarmos padrões dentro de strings e fazermos validações de entrada de dados. No entanto, normalmente não dedicamos o tempo necessário (ou as vezes simplesmente não temos esse tempo). Com isso, estou listando aqui uma lista de Regex prontos para serem utilizados no dia-a-dia.
Regex para valores númericos
Números inteiros (postivos ou negativos):
/^-?\d+$/
Números inteiros positivos:
/^\d+$/
Números inteiros negativos:
/^-\d+$/
Números (postivos ou negativos):
/^-?\d*\.?\d+$/
Números positivos:
/^\d*\.?\d+$/
Números negativos:
/^-\d*\.?\d+$/
Regex para cadeias de caracteres
Caracteres alfabéticos:
/^[a-zA-Z]+$/
Caracteres alfanuméricos:
/^[a-zA-Z0-9]+$/
String trimming:
/^s*|s*$/g
Nova Linha:
/[\r\n]|$/
Caracteres espciais que precisam ser pulados;
/[\-\[\]\/\\\{\}\(\)\*\+\?\.\^\$\|]/
Senhas:
A senha precisa conter um caractere de letra minúscula, um de letra maiúscula, um número, um caractere especial (!@#$%^&?) e ter ao menos 6 caracteres.
/^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/
Regex para Data e/ou Hora
Data (DD/MM/AAAA):
/^(0?[1-9]|[12][0-9]|3[01])([ \/\-])(0?[1-9]|1[012])\2([0-9][0-9][0-9][0-9])(([ -])([0-1]?[0-9]|2[0-3]):[0-5]?[0-9]:[0-5]?[0-9])?$/
Data e hora no formato ISSO-8601:
/^(?![+-]?\d{4,5}-?(?:\d{2}|W\d{2})T)(?:|(\d{4}|[+-]\d{5})-?(?:|(0\d|1[0-2])(?:|-?([0-2]\d|3[0-1]))|([0-2]\d{2}|3[0-5]\d|36[0-6])|W([0-4]\d|5[0-3])(?:|-?([1-7])))(?:(?!\d)|T(?=\d)))(?:|([01]\d|2[0-4])(?:|:?([0-5]\d)(?:|:?([0-5]\d)(?:|\.(\d{3})))(?:|[zZ]|([+-](?:[01]\d|2[0-4]))(?:|:?([0-5]\d)))))$/
Hora no formato 24 horas:
/^([01]?[0-9]|2[0-3]):[0-5][0-9]$/
Regex para a Web
Endereços de E-mail:
/([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi
Hyperlinks:
/^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
Endereço de IP:
/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?).){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/
Tags HTML:
/^<([a-z]+)([^<]+)*(?:>(.*)</1>|s+/>)$/
Regex do Brasil !!!!
Cep:
/^[0-9]{5}-[0-9]{3}$/
CPF:
[0-9]{3}\.?[0-9]{3}\.?[0-9]{3}\-?[0-9]{2}
CNPJ:
[0-9]{2}\.?[0-9]{3}\.?[0-9]{3}\/?[0-9]{4}\-?[0-9]{2}
Finalizando
Possuímos aqui uma lista bem boa de vários tipos de Regex que o pessoal possa precisar. Ajude-nos a aumenta-la enviando um novo regex que possa ser útil ou se você notou algo que precise de ajuste para consertarmos.