Esta página foi traduzida do inglês pela comunidade.Saiba mais e junte-se à comunidade MDN Web Docs.
SyntaxError: flag de expressão regular inválida "x"
A exceção JavaScript "flag de expressão regular inválida" ocorre quando as flags de uma expressão regular contêm qualquer flag que não seja uma das flag:g,i,m,s,u,y oud.
Também pode ser lançada se a expressão contiver mais do que uma instância de uma flag válida.
In this article
Mensagem
SyntaxError: Invalid regular expression flags (V8-based)SyntaxError: invalid regular expression flag x (Firefox)SyntaxError: Invalid regular expression: invalid flags (Safari)
Tipo de erro
SyntaxErrorO que ocorreu de errado?
A expressão regular contém flags inválidas, ou foram utilizadas flags válidas mais de uma vez na expressão.
As flags válidas (permitidas) são listadas emExpressões regulares > Pesquisa avançada com flags, e reproduzidas abaixo:
| Flag | Descrição |
|---|---|
g | Pesquisa Global. Vejaglobal |
i | Pesquisa case-sensitive. VejaignoreCase. |
m | Pesquisa em múltiplas linhas. Vejamultiline. |
s | Permitir que. se igualem a novas linhas. VejadotAll. |
u | Unicode; trata um padrão como uma sequência de pontos de código Unicode. Vejaunicode. |
y | Realiza uma pesquisa "sticky" que coincida a partir da posição atual na cadeia de destino. Vejasticky |
d | Índices. Geração de índices para a correspondência de substrato. VejahasIndices |
Exemplos
Em uma expressão regular literal, que consiste em um padrão fechado entre barras, as flags são definidas após a segunda barra.As flags de expressão regular podem ser utilizadas separadamente ou em conjunto em qualquer ordem.Esta sintaxe mostra como declarar as flags usando a expressão regular literal:
const re = /pattern/flags;Podem também ser definidos na função construtora do objectoRegExp (segundo parâmetro):
const re = new RegExp("pattern", "flags");Aqui está um exemplo que mostra a utilização apenas de flags corretas.
/foo/g;/foo/gims;/foo/uy;Abaixo está um exemplo que mostra a utilização de algumas flags inválidasb,a er:
/foo/bar;// SyntaxError: invalid regular expression flag "b"O código abaixo está incorrecto, porqueW,e eb não são flags válidas.
const obj = { url: /docs/Web,};// SyntaxError: invalid regular expression flag "W"Uma expressão contendo duas barras é interpretada como uma expressão regular literal.Muito provavelmente a intenção era criar uma cadeia literal, usando citações simples ou duplas, como se mostra abaixo:
const obj = { url: "/docs/Web",};Veja também
- Expressões Regulares
- XRegEx flags – biblioteca de expressões regulares que fornece quatro novas bandeiras (
n,s,x,A)