jueves, 4 de enero de 2018

Javascript Parte LXXVIII

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:

<html>
<head>
</head>
<body>

<script type="text/javascript">
  var palabra=prompt('Ingrese una palabra','');
  var 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:
  var 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.
<html>
<head>
</head>
<body>

<script type="text/javascript">
  var palabra=prompt('Ingrese una palabra','');
  var 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:
  var 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.
<html>
<head>
</head>
<body>

<script type="text/javascript">
  var palabra=prompt('Ingrese una palabra','');
  var 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.
<html>
<head>
</head>
<body>

<script type="text/javascript">
  var palabra=prompt('Ingrese una palabra','');
  var 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:
  var 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:
<html>
<head>
</head>
<body>

<script type="text/javascript">
  var oracion=prompt('Ingrese una oracion','');
  var 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):
<html>
<head>
</head>
<body>

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

</body>
</html>

No hay comentarios.:

Publicar un comentario