Ejemplos de expresiones regulares

Hubo errores de script en esta página. Mientras los editores del sitio lo solucionan, puedes ver un contenido parcial debajo.

Ejemplos

Los siguientes ejemplos muestran algunos usos de expresiones regulares.

Cambiando el orden en una cadena de Entrada

El siguiente ejemplo ilustra la formación de una expresión regular y el uso de string.split() y string.replace(). Esta corrige una cadena de entrada que está formateada irregularmente y que contiene nombres (nombre apellido) separados exactamente por espacios en blanco, tabulados y un punto y coma. Finalmente, esta reversa el orden de los nombres (apellido nombre) y ordena la lista.

<script type="text/javascript">

// La cadena nombres contiene múltiples espacios y tabulados,
// y puede tener espacios entre nombres y apellidos.
var nombres = "Harry Trump ;Fred Barney; Helen Rigby ; Bill Abel ; Chris Hand ";

var salida = new Array(
  "---------- Cadena original <br><br>",
  nombres + "<br><br>");

// Prepara dos patrones de expresiones regulares y un arreglo para almacenamiento.
// Separa la cadena en elementos de un arreglo.

// patrón: posibles espacios en blanco (\s*), luego un punto y coma (;), luego posibles espacios en blanco (\s*)
var patron = /\s*;\s*/;

// Divide la cadena en piezas separadas por el patrón anterior y
// almacena las piezas en un arreglo llamado Listanombres
var Listanombres = nombres.split(patron);

// nuevo patrón: uno o más caracteres luego espacios luego caracteres.
// Utilice paréntesis para "memorizar" porciones del patrón.
// Las porciones memorizadas son referidas más tarde.
var patron = /(\w+)\s+(\w+)/; //la variable patron ahora es actualizada con el nuevo patrón

// Nuevo arreglo para mantener los nombres que son procesados.
var ListaSorteadaPorNombres = new Array();

// Despliega el arreglo de nombres y publica el nuevo arreglo
// con nombres separados por coma, por apellidos.
//
// El método replace remueve cualquier cosa que coincida con el patrón
// y la reemplaza con las segundas porciones memorizadas de la cadena memorizada
// seguidos por una coma, espacio seguido por la primera porción memorizada.
//
// Las variables $1 y $2 se refieren a las porciones
// memorizadas mientras coteja con el patrón.

salida.push("---------- Despues de dividir por una expresión regular<br>");

var i, longitud;
for (i = 0, longitud = Listanombres.length; i < longitud; i++)
{
  salida.push(Listanombres[i] + "<br>");
  ListaSorteadaPorNombres[i] = Listanombres[i].replace(patron, "$2, $1")
}

// Despliegue del nuevo arreglo.
salida.push("---------- Nombres reversados<br>");
for (i = 0, longitud = ListaSorteadaPorNombres.length; i < longitud; i++)
{
  salida.push(ListaSorteadaPorNombres[i] + "<br>")
}

// ordenar por apellido, luego desplegar el arreglo ordenado.
ListaSorteadaPorNombres.sort();
salida.push("---------- Ordenada<br>");
for (i = 0, longitud = ListaSorteadaPorNombres.length; i < longitud; i++)
{
  salida.push(ListaSorteadaPorNombres[i] + "<br>")
}

salida.push("---------- Fin<br>");

document.write(salida.join("\n"));

</script>

Utilizando Caracteres Especiales para Verificar Entradas

En el siguiente ejemplo, un usuario ingresa un número telefónico. Cuando el usuario presiona Enter, el script chequea la validez del número. Si el número es válido (coincide con la secuencia de caracteres especificados por la expresión regular), el scrip despliega una ventana de agradecimiento al usuario agradeciéndolo y confirmando su número. Si el número es inválido, el script despliega una ventana informando al usuario que el número telefónico no es válido.

La expresión regular busca por cero o un paréntesis \(?, seguido por tres dígitos \d{3}, seguido por cero o ningún paréntesis cerrado \)?, seguido por un guión, un slash, o punto decimal y cuando lo encuentra, recuerda el caracter ({{ mediawiki.external('-\\/\\.') }}), seguido por tres dígitos \d{3}, seguido por las coincidencias memorizadas de un guión, slash, o punto decimal \1, seguido de cuatro dígitos \d{4}.

El evento Change activado cuando el usuario presiona Enter configura el valor de RegExp.input.

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
  "http://www.w3.org/TR/html4/loose.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <meta http-equiv="Content-Script-Type" content="text/javascript">
    <script type="text/javascript">
      var re = /\(?\d{3}\)?([-\/\.])\d{3}\1\d{4}/;

      function probarInformación(Entrada_teléfono)
      {
        var OK = re.exec(Entrada_teléfono.value);

        if (!OK)
        {
          window.alert(RegExp.input + " es un número de teléfono sin código de área!");
        }
        else
        {
          window.alert("Gracias, su número telefónico es " + OK[0]);
        }
      }
    </script>
  </head>

  <body>
    <p>Ingrese su número telefónico (con código de área) y luego presione Enter.</p>
    <form action="">
      <input name="teléfono" onchange="probarInformación(this);">
    </form>
  </body>
</html>

{{ AnteriorSiguiente("Guía JavaScript 1.5:Trabajar con expresiones regulares:Usar coincidencias de subcadenas parentizadas", "Guía JavaScript 1.5:Sentencia de bloque") }}

{{ languages( { "en": "en/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Examples_of_Regular_Expressions", "fr": "fr/Guide_JavaScript_1.5/Travailler_avec_les_expressions_rationnelles/Exemples_d\'expressions_rationnelles", "ja": "ja/Core_JavaScript_1.5_Guide/Working_with_Regular_Expressions/Examples_of_Regular_Expressions", "pl": "pl/Przewodnik_po_j\u0119zyku_JavaScript_1.5/Praca_z_wyra\u017ceniami_regularnymi/Przyk\u0142ady_wyra\u017ce\u0144_regularnych" } ) }}

Etiquetas y colaboradores del documento

Colaboradores de esta página: DSN XP, Mgjbot
Última actualización por: DSN XP,