aboutsummaryrefslogtreecommitdiff
path: root/files/es/web/javascript/reference/errors/bad_regexp_flag/index.html
blob: a9e3393cf56049fcf04aae7a0391c3f411d6d44d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---
title: 'SyntaxError: indicador de expresión regular no válido "x"'
slug: Web/JavaScript/Reference/Errors/Bad_regexp_flag
tags:
  - Error
  - Error de sintaxis
  - JavaScript
  - SyntaxError
translation_of: Web/JavaScript/Reference/Errors/Bad_regexp_flag
original_slug: Web/JavaScript/Reference/Errors/Indicador_regexp_no-val
---
<div>{{jsSidebar("Errors", "Errores")}}</div>

<p>La excepción de JavaScript "indicador de expresión regular no válido" se produce cuando las indicadores, definidas después de la segunda barra en la expresión regular literal, no son de <code>g</code>, <code>i</code>, <code>m</code>, <code>s</code>, <code>u</code> o <code>y</code>.</p>

<h2 id="Mensaje">Mensaje</h2>

<pre class="syntaxbox notranslate">SyntaxError: error de sintaxis en la expresión regular (Edge)
SyntaxError: marca de expresión regular no válida "x" (Firefox)
SyntaxError: indicadores de expresión regular no válidos (Chrome)
</pre>

<h2 id="Tipo_Error">Tipo <code>Error</code></h2>

<p>{{jsxref("SyntaxError")}}</p>

<h2 id="¿Qué_salió_mal">¿Qué salió mal?</h2>

<p>Hay indicadores de expresión regular no válidos en el código. En una expresión regular literal, que consiste en un patrón encerrado entre barras, los indicadores se definen después de la segunda barra. También se pueden definir en la función constructora del objeto {{jsxref("RegExp")}} (segundo parámetro). Los indicadores de expresión regular se pueden usar por separado o juntos en cualquier orden, pero solo hay seis de ellos en ECMAScript.</p>

<p>Para incluir una bandera con la expresión regular, usa esta sintaxis:</p>

<pre class="brush: js notranslate">var re = /patrón/indicadores;
</pre>

<p>o</p>

<pre class="brush: js notranslate">var re = new RegExp('patrón', 'indicadores');</pre>

<table class="standard-table">
 <caption>Indicadores de expresión regular</caption>
 <thead>
  <tr>
   <th scope="col">Bandera</th>
   <th scope="col">Descripción</th>
  </tr>
 </thead>
 <tbody>
  <tr>
   <td><code>g</code></td>
   <td>Búsqueda global.</td>
  </tr>
  <tr>
   <td>i</td>
   <td>Búsqueda que no distingue entre mayúsculas y minúsculas.</td>
  </tr>
  <tr>
   <td>m</td>
   <td>Búsqueda multilínea.</td>
  </tr>
  <tr>
   <td>s</td>
   <td>Permite que el punto (<code>.</code>) coincida con las nuevas líneas (agregado en ECMAScript 2018)</td>
  </tr>
  <tr>
   <td>u</td>
   <td>Unicode; trata el patrón como una secuencia de puntos de código Unicode</td>
  </tr>
  <tr>
   <td>y</td>
   <td>Realiza una búsqueda "pegajosa" que coincida a partir de la posición actual en la cadena de destino. Consulta {{jsxref("RegExp.sticky", "sticky")}}</td>
  </tr>
 </tbody>
</table>

<h2 id="Ejemplos">Ejemplos</h2>

<p>Solo hay seis indicadores de expresión regular válidos.</p>

<pre class="brush: js example-bad notranslate">/foo/bar;

// SyntaxError: indicador de expresión regular no válido "b"
</pre>

<p>¿Tenías la intención de crear una expresión regular? Una expresión que contiene dos barras se interpreta como una expresión regular literal.</p>

<pre class="brush: js example-bad notranslate">let obj = {
  url: /docs/Web
};

// SyntaxError: indicador de expresión regular no válido "W"
</pre>

<p>¿O pretendías crear una cadena en su lugar? Agrega comillas simples o dobles para crear una cadena literal.</p>

<pre class="brush: js example-good notranslate">let obj = {
  url: '/docs/Web'
};</pre>

<h3 id="Indicadores_de_expresión_regular_válidos">Indicadores de expresión regular válidos</h3>

<p>Consulta la tabla anterior para ver las seis marcas de expresiones regulares válidas que están permitidas en JavaScript.</p>

<pre class="brush: js example-good notranslate">/foo/g;
/foo/gims;
/foo/uy;
</pre>

<h2 id="Ve_también">Ve también</h2>

<ul>
 <li>{{JSxRef("../Guide/Regular_Expressions", "Expresiones regulares")}}</li>
 <li><a href="http://xregexp.com/flags/">Indicadores de RegEx</a> – biblioteca de expresiones regulares que proporciona cuatro nuevos indicadores (<code>n</code>, <code>s</code>, <code>x</code>, <code>A</code>)</li>
</ul>