Trabajar con expresiones regulares

  • Enlace amigable (slug) de la revisión: Guía_JavaScript_1.5/Trabajar_con_expresiones_regulares
  • Título de la revisión: Trabajar con expresiones regulares
  • Id de la revisión: 256112
  • Creada:
  • Creador: DSN XP
  • ¿Es la revisión actual? No
  • Comentario /* Trabajar con expresiones regulares */

Contenido de la revisión

Trabajar con expresiones regulares

Las expresiones regulares se usan con los métodos test y exec de la clase RegExp y con los métodos de String match, replace, search y split. Estos métodos se explican en detalle en Referencia del JavaScript 1.5 Core.

Método Descripción
exec Un método de RegExp que ejecuta una búsqueda de una coincidencia en una cadena. Devuelve un vector de información.
test Un método de RegExp que prueba si existe una coincidencia en una cadena. Devuelve verdadero o falso.
match Un método de String que realiza la búsqueda de una coincidencia en una cadena. Devuelve un arreglo de información, o null si no hay coincidencia.
search Un método de String que prueba si existe una coincidencia en una cadena. Devuelve la posición de la coincidencia, o -1 si la búsqueda falla.
replace Un método de String que realiza una búsqueda de una coincidencia en una cadena y remplaza la subcadena coincidente con la subcadena de reemplazo.
split Un método de String que emplea una expresion regular, o una cadena constante para partir la cadena en un arreglo de subcadenas.

Tabla 4.2: Métodos que usan expresiones regulares

Cuando quiera saber si un patrón se encuentra en una cadena, utilice el método test o search; Para más información (pero una ejecución más lenta) utilice los métodos exec o match y si la coincidencia se encuentra, estos métodos devuelven un arreglo y actualizan propiedades del objeto de expresión regular asociado y también del objeto de expresiones regulares predefinido, RegExp. Si la búsqueda falla, el método exec devuelve null (lo que se puede interpretar como false).

En el siguiente ejemplo, el script utiliza el método exec para buscar una coincidencia en una cadena.

<SCRIPT type="text/javascript">
  myRe = /d(b+)d/g;
  myArray = myRe.exec("cdbbdbsbz");
</SCRIPT>

Si no se necesita acceder a las propiedades de la expresión regular, un camino alternativo de crear myArray es con este script:

<SCRIPT type="text/javascript">
  myArray = /d(b+)d/g.exec("cdbbdbsbz");
</SCRIPT>

Si quiere construir una expresión regular a partir de una cadena, aún quedan alternativas en este script:

<SCRIPT type="text/javascript">
  myRe = new RegExp ("d(b+)d", "g");
  myArray = myRe.exec("cdbbdbsbz");
</SCRIPT>

Con estos scripts, la coincidencia se realiza y devuelve el arreglo y actualiza las propiedades mostradas en la siguiente tabla.

Objeto Propiedad o índice Descripción En este ejemplo
myArray   La cadena coincidente y todas las subcadenas recordadas. {{mediawiki.external('\"dbbd\", \"bb\"')}}
  index El índice de la coincidencia en la cadena de entrada, tomando como primer índice de ésta el 0. 1
  input La cadena original. "cdbbdbsbz"
  {{mediawiki.external(0)}} Los últimos caracteres emparejados. "dbbd"
myRe lastIndex El índice a partir del cual realizar la siguiente búsqueda. (Esta propiedad se establece sólo si la expresión regular usa la opción g, descrita en Ejecutar una búsqueda global, discriminar mayúsculas/minúsculas y considerar entradas multilínea. 5
  source El texto del patrón. Se actualiza cuando la expresión regular se crea, no cuando se ejecuta. "d(b+)d"

Tabla 4.3: Resultados de la ejecución de expresiones regulares.

Como se muestra en la segunda forma del ejemplo, puede utilizar una espresión regular creada con un objeto inciador sin asignarlo a una variable. Si lo hace, sin embargo, cada ocurrencia es una nueva expresión regular. Por esta razón, si utiliza esta forma sin asignar a una variable, no podrá acceder posteriormente a las propiedades de esta expresión regular. Por ejemplo, imagine que tiene este script:

<SCRIPT type="text/javascript">
  myRe = /d(b+)d/g;
  myArray = myRe.exec("cdbbdbsbz");
  document.writeln("El valor del último índice es " + myRe.lastIndex);
</SCRIPT>

Este script muestra:

el valor del último índice es 5

Sin embargo, si tuviese este script:

<SCRIPT type="text/javascript">
  myArray = /d(b+)d/g.exec("cdbbdbsbz");
  document.writeln("El valor del último índice es " + /d(b+)d/g.lastIndex);
</SCRIPT>

Mostraría:

El valor del último ínidice es 0

Las ocurrencias de /d(b+)d/g en las dos instrucciones son diferentes objetos de expresiones regulares y por lo tanto tienen diferentes valores para su propiedad lastIndex. Si necesita acceder a las propiedades de una expresión regular creada con un objeto iniciador, debería primero asignarle a una variable.

{{template.AnteriorSiguiente("Guía JavaScript 1.5:Escribir un patrón de expresión regular", "Guía JavaScript 1.5:Trabajar con expresiones regulares:Ejecutar una búsqueda global, discriminar mayúsculas y minúsculas y considerar entrada multilínea")}}

{{ wiki.languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions", "fr": "fr/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles", "ja": "ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Praca_z_wyra\u017ceniami_regularnymi" } ) }}

Fuente de la revisión

<p>
</p>
<ul><li> <a href="es/Gu%c3%ada_JavaScript_1.5/Trabajar_con_expresiones_regulares/Ejecutar_una_b%c3%basqueda_global%2c_discriminar_may%c3%basculas_y_min%c3%basculas_y_considerar_entrada_multil%c3%adnea">Ejecutar una busqueda global, discriminar mayúsculas y minúsculas y considerar entrada multilínea</a>
</li><li> <a href="es/Gu%c3%ada_JavaScript_1.5/Trabajar_con_expresiones_regulares/Usar_coincidencias_de_subcadenas_parentizadas">Usar coincidencias de subcadenas parentizadas</a>
</li><li> <a href="es/Gu%c3%ada_JavaScript_1.5/Trabajar_con_expresiones_regulares/Ejemplos_de_expresiones_regulares">Ejemplos de expresiones regulares</a>
</li></ul>
<h3 name="Trabajar_con_expresiones_regulares"> Trabajar con expresiones regulares </h3>
<p>Las expresiones regulares se usan con los métodos test y exec de la clase RegExp y con los métodos de String match, replace, search y split. Estos métodos se explican en detalle en <a href="es/Referencia_del_JavaScript_1.5_Core">Referencia del JavaScript 1.5 Core</a>.
</p>
<table class="fullwidth-table">
<tbody><tr>
<th>Método</th>
<th>Descripción</th>
</tr>
<tr>
<td><a href="es/Referencia_del_JavaScript_1.5_Core/Objetos/RegExp/exec">exec</a></td>
<td>Un método de RegExp que ejecuta una búsqueda de una coincidencia en una cadena. Devuelve un vector de información.  </td>
</tr>
<tr>
<td><a href="es/Referencia_del_JavaScript_1.5_Core/Objetos/RegExp/test">test</a>
</td><td>Un método de RegExp que prueba si existe una coincidencia en una cadena. Devuelve verdadero o falso. </td>
</tr>
<tr>
<td><a href="es/Referencia_del_JavaScript_1.5_Core/Objetos/String/match">match</a>
</td><td>Un método de String que realiza la búsqueda de una coincidencia en una cadena. Devuelve un arreglo de información, o null si no hay coincidencia. </td>
</tr>
<tr>
<td><a href="es/Referencia_del_JavaScript_1.5_Core/Objetos/String/search">search</a>
</td><td>Un método de String que prueba si existe una coincidencia en una cadena. Devuelve la posición de la coincidencia, o -1 si la búsqueda falla. </td>
</tr>
<tr>
<td><a href="es/Referencia_del_JavaScript_1.5_Core/Objetos/String/replace">replace</a>
</td><td>Un método de String que realiza una búsqueda de una coincidencia en una cadena y remplaza la subcadena coincidente con la subcadena de reemplazo. </td>
</tr>
<tr>
<td><a href="es/Referencia_del_JavaScript_1.5_Core/Objetos/String/split">split</a>
</td><td>Un método de String que emplea una expresion regular, o una cadena constante para partir la cadena en un arreglo de subcadenas. </td>
</tr>
</tbody></table>
<p><small><b>Tabla 4.2: Métodos que usan expresiones regulares </b></small>
</p><p>Cuando quiera saber si un patrón se encuentra en una cadena, utilice el método <code>test</code> o <code>search</code>; Para más información (pero una ejecución más lenta) utilice los métodos <code>exec</code> o <code>match</code> y si la coincidencia se encuentra, estos métodos devuelven un arreglo y actualizan propiedades del objeto de expresión regular asociado y también del objeto de expresiones regulares predefinido, <code>RegExp</code>. Si la búsqueda falla, el método  <code>exec</code> devuelve <code>null</code> (lo que se puede interpretar como false).
</p><p>En el siguiente ejemplo, el script utiliza el método <code>exec</code> para buscar una coincidencia en una cadena.
</p>
<pre>&lt;SCRIPT type="text/javascript"&gt;
  myRe = /d(b+)d/g;
  myArray = myRe.exec("cdbbdbsbz");
&lt;/SCRIPT&gt;
</pre>
<p>Si no se necesita acceder a las propiedades de la expresión regular, un camino alternativo de crear <code>myArray</code> es con este script:
</p>
<pre>&lt;SCRIPT type="text/javascript"&gt;
  myArray = /d(b+)d/g.exec("cdbbdbsbz");
&lt;/SCRIPT&gt;
</pre>
<p>Si quiere construir una expresión regular a partir de una cadena, aún quedan alternativas en este script:
</p>
<pre>&lt;SCRIPT type="text/javascript"&gt;
  myRe = new RegExp ("d(b+)d", "g");
  myArray = myRe.exec("cdbbdbsbz");
&lt;/SCRIPT&gt;
</pre>
<p>Con estos scripts, la coincidencia se realiza y devuelve el arreglo y actualiza las propiedades mostradas en la siguiente tabla.
</p>
<table class="fullwidth-table">
<tbody><tr>
<th>Objeto</th>
<th>Propiedad o índice</th>
<th>Descripción</th>
<th>En este ejemplo</th>
</tr>
<tr>
<td>myArray</td>	
<td> </td>
<td>La cadena coincidente y todas las subcadenas recordadas.  </td>
<td>{{mediawiki.external('\"dbbd\", \"bb\"')}}</td>
</tr>
<tr>
<td> </td>
<td>index</td>
<td>El índice de la coincidencia en la cadena de entrada, tomando como primer índice de ésta el 0. </td>
<td>1  </td>
</tr>
<tr>
<td> </td>
<td>input</td>
<td>La cadena original.  </td>
<td>"cdbbdbsbz"  </td>
</tr>
<tr>
<td> </td>
<td>{{mediawiki.external(0)}}</td>
<td>Los últimos caracteres emparejados.  </td>
<td>"dbbd"  </td>
</tr>
<tr>
<td>myRe 	</td>
<td>lastIndex</td>
<td>El índice a partir del cual realizar la siguiente búsqueda. (Esta propiedad se establece sólo si la expresión regular usa la opción g, descrita en <a href="es/Gu%c3%ada_JavaScript_1.5/Trabajar_con_expresiones_regulares/Ejecutar_una_busqueda_global%2c_ignorar_mayusculas%2f%2fminusculas%2c_y_considerar_entrada_multilinea">Ejecutar una búsqueda global, discriminar mayúsculas/minúsculas y considerar entradas multilínea.</a> </td>
<td>5  </td>
</tr>
<tr>
<td> </td>
<td>source</td>
<td>El texto del patrón. Se actualiza cuando la expresión regular se crea, no cuando se ejecuta. </td>
<td>"d(b+)d"</td>
</tr>
</tbody></table>
<p><small><b>Tabla 4.3: Resultados de la ejecución de expresiones regulares.</b></small>
</p><p>Como se muestra en la segunda forma del ejemplo, puede utilizar una espresión regular creada con un objeto inciador sin asignarlo a una variable. Si lo hace, sin embargo, cada ocurrencia es una nueva expresión regular. Por esta razón, si utiliza esta forma sin asignar a una variable, no podrá acceder posteriormente a las propiedades de esta expresión regular. Por ejemplo, imagine que tiene este script:
</p>
<pre>&lt;SCRIPT type="text/javascript"&gt;
  myRe = /d(b+)d/g;
  myArray = myRe.exec("cdbbdbsbz");
  document.writeln("El valor del último índice es " + myRe.lastIndex);
&lt;/SCRIPT&gt;
</pre>
<p>Este script muestra:
</p>
<pre>el valor del último índice es 5
</pre>
<p>Sin embargo, si tuviese este script:
</p>
<pre>&lt;SCRIPT type="text/javascript"&gt;
  myArray = /d(b+)d/g.exec("cdbbdbsbz");
  document.writeln("El valor del último índice es " + /d(b+)d/g.lastIndex);
&lt;/SCRIPT&gt;
</pre>
<p>Mostraría:
</p>
<pre>El valor del último ínidice es 0
</pre>
<p>Las ocurrencias de <code>/d(b+)d/g</code> en las dos instrucciones son diferentes objetos de expresiones regulares y por lo tanto tienen diferentes valores para su propiedad <code>lastIndex</code>. Si necesita acceder a las propiedades de una expresión regular creada con un objeto iniciador, debería primero asignarle a una variable.
</p><p>{{template.AnteriorSiguiente("Guía JavaScript 1.5:Escribir un patrón de expresión regular", "Guía JavaScript 1.5:Trabajar con expresiones regulares:Ejecutar una búsqueda global, discriminar mayúsculas y minúsculas y considerar entrada multilínea")}}
</p>{{ wiki.languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions", "fr": "fr/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles", "ja": "ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Praca_z_wyra\u017ceniami_regularnymi" } ) }}
Revertir a esta revisión