Listado completo de tutoriales

Expresiones regulares: metacaracteres de cuantificadores alternativos * ? +


La sintaxis de las expresiones regulares define tres metacaracteres que pueden utilizarse en lugar de la sintaxis vista en el concepto anterior.

Caracteres:

?    busca cero o una ocurrencia en el string
     remplaza a    {0,1}
*    busca cero o más ocurrencias en el string
     remplaza a    {0,}
+    busca una o más ocurrencias en el string
     remplaza a    {1,}

Problema

Ingresar una palabra por teclado y validar que tenga al menos una vocal.

<!DOCTYPE html>
<html>

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

<body>

    <script>
        let palabra = prompt('Ingrese una palabra con al menos una vocal:');
        let patron = /[aeiou]+/;
        if (patron.test(palabra))
            document.write('La palabra ingresada tiene al menos una vocal');
        else
            document.write('La palabra ingresada no tiene vocales');
    </script>

</body>

</html>

La expresión regular planteada utiliza el metacaracter + :

        let patron = /[aeiou]+/;

Con esto se analiza cada letra del string y si al menos uno tiene una vocal luego el método test de la expresión regular se verifica verdadera.

Utilizando la otra sintaxis la expresión sería:

        let patron=/[aeiou]{1,}/;
Problema

Ingresar un valor numérico entero que podemos opcionalmente antecederle alguno de los caracteres: + o -.

<html>

<head>
</head>

<body>

    <script type="text/javascript">
        let valor = prompt('Ingrese un valor numérico entero, puede anteceder el +/-:');
        let patron = /^[\+\-]?[0-9]+$/;
        if (patron.test(valor))
            document.write('Tiene un formato correcto');
        else
            document.write('Formato incorrecto');
    </script>

</body>

</html>

El patrón queda definido con la siguiente sintaxis:

        let patron = /^[\+\-]?[0-9]+$/;

Es decir con la sintaxis ^[\+\-]? estamos indicando que el primer carácter debe ser un + o - y como fuera de los corchetes indicamos el carácter ? que indica que busca cero o una ocurrencia (es decir es opcional disponer el + o -)
Luego indicamos con la sintaxis [0-9]+$ que se debe ingresar uno o más dígitos (con el +) y debe finalizar con un dígito.

Es test se verifica correcto si ingresamos:

1200
+300
-55

e incorrecto si ingresamos:

10z55
+34aa2
+-20
+++34
Problema

Ingresar un valor numérico entero o real, se debe validar que se ingrese al menos un número previo al operador punto que es opcional y finalizar con un número obligatoriamente.

<!DOCTYPE html>
<html>

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

<body>

    <script>
        let valor = prompt('Ingrese un valor numérico entero o real:');
        let patron = /^[0-9]+\.?[0-9]+$/;
        if (patron.test(valor))
            document.write('Tiene un formato correcto');
        else
            document.write('Formato incorrecto');
    </script>

</body>

</html>

La expresión comienza con ^[0-9]+ lo que significa que se debe ingresar en la primer posición un dígito. Luego es opcional el carácter . ya que empleamos el metacaracter de interrogación \.? y finalmente debe terminar con un dígito obligatoriamente [0-9]+$

Retornar