Listado completo de tutoriales

Expresiones regulares: [] conjunto de caracteres opcionales


Ahora veremos el significado de los caracteres [] en una expresión regular. Se emplea estos caracteres para encerrar los caracteres permitidos.
problema Controlar si la palabra ingresada comienza con el primer carácter alfabético ya sea en mayúsculas o en minúsculas:

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let palabra = prompt('Ingrese una palabra');
        let patron = /^[a-zA-Z]/;
        if (patron.test(palabra))
            alert('La palabra comienza con un carácter alfabético (mayúscula o minúscula)');
        else
            alert('La palabra no comienza con un carácter alfabético (mayúscula o minúscula)');
    </script>

</body>

</html>

Debemos especificar cada uno de los caracteres permitidos encerrados entre los corchetes. Cuando los caracteres son seguidos en la tabla de caracteres podemos utilizar el carácter '-' para indicar un rango de caracteres:

        let patron = /^[a-zA-Z]/;

Como solo debemos verificar el primer carácter utilizamos el comando '^' y le sigue los caracteres posibles.

problema

Ingresar una palabra y luego mostrar un mensaje si finaliza con vocal.

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let palabra = prompt('Ingrese una palabra');
        let patron = /[aeiouAEIOUáéíóú]$/;
        if (patron.test(palabra))
            alert('La palabra finaliza con vocal');
        else
            alert('La palabra no finaliza con vocal');
    </script>

</body>

</html>

En la expresión regular debemos especificar entre corchetes todas las vocales y como no están en forma seguida en la tabla de caracteres debemos especificarlas una por una:

        let patron = /[aeiouAEIOUáéíóú]$/;

Como debemos controlar el último carácter de la oración utilizamos el comando $

Hemos utilizado el carácter '^' para encontrar coincidencias desde el principio del string, pero este carácter dentro de los corchetes abiertos y cerrados tiene otro uso. Permite obtener todos los otros caracteres distintos a los especificados.

problema

Ingresar una clave que no finalice en vocal.

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let palabra = prompt('Ingrese una palabra');
        let patron = /[^aeiouAEIOUáéíóú]$/;
        if (patron.test(palabra))
            alert('La palabra no finaliza con vocal');
        else
            alert('La palabra finaliza con vocal');
    </script>

</body>

</html>
problema

Ingresar una palabra y luego mostrar un mensaje si contiene una vocal en alguna parte de la palabra.

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let palabra = prompt('Ingrese una palabra');
        let patron = /[aeiouAEIOUáéíóú]/;
        if (patron.test(palabra))
            alert('La palabra tiene al menos una vocal');
        else
            alert('La palabra no tiene vocales');
    </script>

</body>

</html>

Ahora nuestra expresión regular queda especificada como:

        let patron = /[aeiouAEIOUáéíóú]/;

El método test retorna true si ingresamos alguna de las siguientes palabras:

casa
madre
salir

En cambio retorna false si ingresamos:

pbt

Cuando tenemos que buscar en el string alguno de los caracteres que tienen un significado especial en las expresiones regulares '^ $. * +? =! : | \ / () [] {} ' debemos escaparlos a algunos dentro de los corchetes.

problema

Ingresar una oración por teclado y luego mostrar un mensaje si el string ingresado contiene al menos uno de los caracteres que son un comando o metacaracter para las expresiones regulares:

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let oracion = prompt('Ingrese una oracion');
        let patron = /[\^$.*+?=!:|\\/()\[\]{}]/;
        if (patron.test(oracion))
            alert('La oración tiene al menos un carácter ^ $. * +? =! : | \ / () [] {}');
        else
            alert('La oración no tiene ningún carácter ^ $. * +? =! : | \ / () [] {}');
    </script>

</body>

</html>

Se verifica verdadero el método test si ingresamos:

La tarde estaba soleada!

Se verifica falso el método test si ingresamos:

La tarde estaba soleada
problema

Ingresar todos los caracteres con significada especial en las expresiones regulares en el siguiente orden: ^$.*+?=!:|\/()[]{} (es necesario escapar todos los metacaracteres):

<!DOCTYPE html>
<html>

<head>
    <title>Ejemplo de JavaScript</title>
    <meta charset="UTF-8">
</head>

<body>

    <script>
        let cadena = prompt('Ingrese esos caracteres especiales para expresiones regulares en este mismo orden: ^$.*+?=!:|\/()[]{} ');
        let patron = /^\^\$\.\*\+\?\=\!\:\|\\\/\(\)\[\]\{\}$/;
        if (patron.test(cadena))
            alert('Orden correcto');
        else
            alert('Incorrecto');
    </script>

</body>

</html>

Retornar