var titulo = /(Quem sou eu?)/;


Eng. de Computação na UFBA

CPC Brasil Sistemas

Aspirante a Full Stack

var titulo = /(O que é RegExp?)/;

regras utilizadas para descrever padrões de caracteres

var titulo = /(Por que usar?)/;

Facilidade de Trabalho Código mais Limpo Mais Eficiência
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas mollis nibh eros, pellentesque lobortis libero tempus mattis. Sed faucibus cursus nunc, sed convallis lacus tincidunt ut. Praesent quis diam eu massa accumsan tristique. Donec at vestibulum enim. Donec sed urna ut lacus tempor dignissim eu at urna. Nam mattis augue non justo convallis, suscipit blandit lorem facilisis. Nunc eleifend tincidunt imperdiet. Integer ante augue, molestie quis ornare ac, condimentum in turpis. Fusce erat mauris, tristique nutella sed felis sit amet, iaculis condimentum mi. Duis nulla ipsum, varius at feugiat viverra, cursus et nisl. Pellentesque fermentum, justo ac placerat vulputate, magna nisi venenatis purus, ac porttitor augue diam vitae dolor.
Maecenas sollicitudin, turpis quis rutrum lobortis, turpis ligula vulputate nunc, eu ultricies sapien leo in dolor. Nam urna purus, aliquet et volutpat non, vulputate blandit sem. Vivamus accumsan arcu sed magna fermentum elementum. Ut aliquam lacus vestibulum nunc sollicitudin rutrum. Quisque risus justo, auctor in rhoncus sed, mattis aliquet arcu. Pellentesque eleifend ac elit id scelerisque. Duis in auctor purus. Aliquam mattis erat massa, eu mattis diam faucibus in.

var titulo = /(Como Usar?)/;

Entre Barras


var primeiraRegexp = /abc/;
				    

Construtor


var primeiraRegexp2 = new RegExp("Abc");
				    

Cuidado! Regexp é Case-sensitive

var titulo = /(Caracteres Especiais)/;

\w - [A-Za-z0-9_]

"abc" /\w/ = "a"

"$10" /\w/ = "1"

"JS_Day" /\w\w\w/ = "JS_"

"JS4Day" /\w\w\w\w/ = "JS4D"

\d - [0-9]

"abc" /\d/ = null

"$10" /\d\d/ = "10"

"a1 a2 a3 a4" /\d\d\d\d/ = null

Como ficaria para pegar apenas os números dessa última sentença?

"a1 a2 a3 a4" /\d/g = "1234"

var titulo = /(Validando CPF)/;

Formato

000.123.123-33

RegExp

/\d\d\d.\d\d\d.\d\d\d-\d\d/

Outros Formatos

245.65.845-999

2455.65.8-9499

var titulo = /(Outros Tipos de Caracteres)/;

\s- Espaços em Branco

\n- Quebra de Linha

\t- Tabulações

.- Pega TUDO

\(Letra Maiúscula) - Inverso dos caracteres normais

\D - Casa com tudo exceto números

\W - Casa com tudo exceto [A-Za-z0-9_]

var titulo = /(Sufixos)/;

/regexp/g - Busca Global

/regexp/i - Ignora o Case-sensitive

var titulo = /(Agrupamento e Seleção)/;

/(agrupando)/g

var titulo = /(Formatando CPF)/;

123.456.789-10 12345678910

(123).(456).(789)-(10)

(\d\d\d)(\d\d\d)(\d\d\d)(\d\d)

$1 $2 $3 $4

'$1.$2.$3-$4'

Notação


var cpf = '12345678910';
cpf.replace( /(\d\d\d)(\d\d\d )(\d\d\d )(\d\d)/, '$1.$2.$3-$4' );
				    

var titulo = /(Repetição)/;

Definida

/\w{n,m}/g

Com n sendo o mínimo e m o máximo.

Indefinida

/\w+/g

var titulo = /(Validando URL)/;

https://github.com https://www.youtube.com https://www.facebook.com.br https://youtube.io https://www.clara.me.br https://clara.me.br

https:\/\/ (www.)? \w+. \w{2,} (.\w{2,})?

var titulo = /(Métodos)/;

Match


var texto = 'Três pratos de trigo para três tigres tristes';
texto.match(/trigo/);     //["trigo"]
texto.match(/três/gi);    //["Três", "três"]
				    

Replace


var texto = 'Três pratos de trigo para três tigres tristes';
texto.replace(/(três)/gi, 'quatro');
var texto = 'quatro pratos de trigo para quetro tigres tristes';
				    

Split


var meses = 'jan,fev,mar,abr,mai,jun,jul,ago,set,nov,dez';
meses.split(/,/);     //["jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "nov", "dez"]
'jsday.com.br'.split(/\W/);     //["jsday", "com", "br"]
'123.456.789-10'.split(/\D/);     //["123", "456", "789", "10"] 
				    

Test


var texto = 'três pratos de trigo para três tigres tristes';
/tigres/.test(texto);    //true
				    

var titulo = /(Ferramentas)/;

regex101.com

var titulo = /(Referências Usadas)/;

Mozilla MDN

Curso JSNinja

Javascript o Guia Definitivo

Eloquent Javascript