Como escrever expressões regulares para código com javascript

Antes que você possa fazer uso de uma expressão regular em javascript, você precisa criar um objeto que contém a expressão. Você pode escrever expressões regulares em uma de duas maneiras:

  • Ao usar uma expressão regular literal

  • Através da função de construtor da RegExp objeto

Usando o objeto RegExp

Quando você cria uma expressão regular chamando o RegExp função de construtor, o objeto resultante é criado em tempo de execução, em vez de quando o script é carregado. Você deve usar o RegExp função de construtor quando você não sabe o valor da expressão regular, quando você está escrevendo o roteiro.

Por exemplo, você pode estar se perguntando o usuário para introduzir uma expressão regular, ou você pode estar recebendo a expressão regular a partir de uma fonte externa ou cálculo alguma parte da expressão regular, quando o script é executado.

Este programa cria uma expressão regular usando uma carta aleatória e, em seguida, solicita que o usuário digite uma frase. Quando o usuário envia o formulário, o programa calcula quantas instâncias da carta aleatória estavam no texto enviado pelo usuário.

Jogo Contando carta

Este é o resultado da execução do programa anterior em um navegador web.

O resultado Carta Contando o jogo.
O resultado Carta Contando o jogo.

literais de expressão regular

Para criar uma expressão regular literal, você colocar o valor da expressão regular entre barras em vez de aspas.

Por exemplo:

var myRegularExpression = / javascript / -

literais de expressões regulares são compiladas pelo navegador quando o script é carregado e permanecem constantes durante toda a vida do script. O resultado é que literais de expressões regulares oferecem melhor desempenho para expressões que serão imutável.

O exemplo anterior usa uma expressão regular para procurar uma correspondência exacta da corda # 147-javascript# 148-. Uma expressão regular que contém uma cadeia de caracteres a serem combinados exatamente é chamado de padrão simples.

Em um aplicativo ou programa real, você vai querer dar conta de usuários que usam alguma variação na ortografia correta. Por exemplo, um usuário pode introduzir qualquer uma das seguintes palavras e claramente significa javascript:

  • javascript

  • javascript

  • java script

  • JS

  • js

Pode até haver variações mais exóticas. Uma das coisas maravilhosas e frustrantes sobre como lidar com a entrada de pessoas reais é que você nunca sabe ao certo o que eles vão fazer! A fim de ser capaz de detectar variações na capitalização e ortografia, você pode usar expressões regulares mais sofisticados para procurar padrões ou conjuntos de caracteres, ao invés de apenas strings literais.

O que se segue é uma expressão regular que irá corresponder a revista # 147-javascript# 148- assim como # 147-javascript# 148- ou # 147-javascript# 148-:

var myRegularExpression = / [Jj] ava [Ss] cript / -

As coisas estão começando a parecer um pouco estranho, mas se você entender o significado das diferentes personagens, você vai ver que isso é realmente ainda muito simples. Os colchetes em uma expressão regular definem um conjunto de caracteres e irá corresponder a qualquer um dos personagens dentro desse conjunto. Por escrito [Jj], o que você está dizendo é que quer um capital ou j minúsculas irá corresponder.

Testando expressões regulares

Às vezes, quando você está escrevendo expressões regulares, é útil ter uma maneira fácil de testar uma expressão para se certificar de que está realmente fazendo o que você quer. Uma série de sites e ferramentas podem ajudar você a testar as suas expressões regulares.

regex101.com é um desses sites. Usar regex101.com, digite a expressão regular na caixa na parte superior da tela e digite algum texto na caixa de debaixo dela. O site verifica o texto contra o uso de sua expressão regular e destaca os jogos que são encontrados.

Isso mostra regex101.com usando o nosso exemplo de expressão regular para testar contra uma pergunta sobre javascript.

Usando regex101.com para testar uma expressão regular.
Usando regex101.com para testar uma expressão regular.

caracteres especiais em expressões regulares

As expressões regulares torná-lo possível para você olhar para os números em cordas, letras, grupos de letras, repetições de caracteres, e muito mais.

Para criar padrões de pesquisa complexas, você pode usar a expressão regular caracteres especiais. Os caracteres especiais mais utilizados estão listados aqui.

Caractere especialSignificado
Designa se o carácter seguinte deve ser tratado como aspecial caracteres ou se ele deve ser tratado como um literalcharacter. Se o personagem que se segue é um carácter especial, o designa que ele deve ser tratado literalmente.
^Localiza o início da entrada.
$Localiza o final da entrada.
*Encontra as anteriores caractere 0 ou mais vezes.
+Encontra as anteriores caráter 1 ou mais vezes.
?Localiza o anterior caractere 0 ou 1 tempo.
.Encontra qualquer caractere único, exceto o caractere de nova linha.
x | yEncontra x ou y.
{N}Encontra exatamente n ocorrências do caractere anterior.
[Xyz]Encontra qualquer um dos personagens nos suportes.
[^ Xyz]Localiza quaisquer outros do que os nos suportes caracteres.
[B]Encontra um retrocesso.
bEncontra um limite de palavra.
BEncontra um limite de palavra.
dEncontra um caractere de dígito.
DEncontra qualquer caractere não dígito.
nEncontra um avanço de linha.
sEncontra um único caractere espaço em branco, incluindo espaço, guia, alimentação de formulário e avanço de linha.
SEncontra um único caractere não-branco-espaço.
tEncontra um guia.
WEncontra qualquer caractere alfanumérico, incluindo anunderscore.
WEncontra qualquer caractere de palavra.

menu