Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
2
respuestas

¿Será qué puedo conducir? Remix

Intenté casi 2 noches lograr lo que quería; que cuando pida el nombre, sólo acepte texto; cuando pida la edad, solo acepte números y cuando pida si tiene licencia o no el usuario, solo acepte como respuestas "si", "no" y "claro", tanto en minúsculas como mayúsculas.

Logré los dos primeros (aunque revisándolo, quiero el nombre no acepte números ni al principio, ni en medio, ni al final) pero en licencia no logré del todo lo que quería.

Tengo que investigar más los RegExp, la lógica del "!", etc.

Bueno, poco a poco, pero funciona por el momento. Agradezco sugerencias. Gracias!

<!DOCTYPE html>
<html lang="es">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>¿Puedo conducir?</title>
    <style>
      body {
        background-color: #b7ccdf;
      }

      p {
        font-family: monospace;
      }

      h1 {
        font-family: Arial, Helvetica, sans-serif;
        font-weight: bold;
        font-size: 3rem;
        text-align: center;
        padding-top: 300px;
      }

      footer {
        font-family: monospace;
        text-align: center;
        font-size: large;
      }
    </style>
  </head>
  <body>
    <script>
      // funciones:------------------>

      function saltarLinea() {
        document.write("<br>");
      }

      function imprimir(frase) {
        document.write(frase);
        saltarLinea();
      }

      // variables ------------------>
      // nombre ---------------->

      let nombreUsuario = "";
      while (!nombreUsuario || !isNaN(nombreUsuario)) {
        nombreUsuario = prompt("Por favor, ¿cuál es su nombre?");
        if (nombreUsuario == "" || !isNaN(nombreUsuario)) {
          alert("Sólo texto por favor ;)");
        }
      }

      //edad -------------------->

      let edadUsuario = null;
      while (edadUsuario == null || isNaN(edadUsuario)) {
        edadUsuario = prompt("Por favor, ¿cuál es su edad?");
        if (edadUsuario == null || isNaN(edadUsuario)) {
          alert("Sólo números por favor ;)");
        }
      }

      // licencia ------------------>

      let licenciaUsuario = "";
      while (!licenciaUsuario || !isNaN(nombreUsuario)) {
        licenciaUsuario = prompt("¿Cuenta con licencia para conducir?");
        if (licenciaUsuario == "" || !isNaN(licenciaUsuario)) {
          alert("Por favor, responda solamente 'si' o 'no'");
        }
      }

      // ¿puedo conducir? ------------------>

      if (edadUsuario >= 18 && licenciaUsuario == "si") {
        imprimir(
          "<h1>Adelante " +
            nombreUsuario +
            ", puedes conducir con cuidado.</h1>"
        );
      }

      if (edadUsuario >= 18 && licenciaUsuario == "no") {
        imprimir(
          "<h1>A pesar de su edad, carece de licencia y no puede conducir sin ella.<br>Diríjase al departamento de vialidad para solicitar una.</h1>"
        );
      }

      if (edadUsuario < 18 && licenciaUsuario == "si") {
        imprimir(
          "<h1>Siendo menor de edad " +
            nombreUsuario +
            ", no tienes aún permiso para conducir.</h1>"
        );
      }

      if (edadUsuario < 18 && licenciaUsuario == "no") {
        imprimir(
          "<h1>Siendo menor de edad " +
            nombreUsuario +
            ", no tienes aún permiso para conducir.</h1>"
        );
      }
    </script>

    <footer>
      <b>Maneje con precaución. Respete al peatón.</b><br />
      Este test no tiene validez de ningún tipo. Lección Alura ORACLE ONE. enero
      2022.
    </footer>
  </body>
</html>

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad

2 respuestas

Hola Roberto, un lujo, se nota que manejas perfecto HTML y CSS, sigue adelante. Suerte y éxitos. Saludos cordiales

Muchas gracias Mabel!

Realmente y en todo caso, manejo bien el nivel principiante - intermedio, lo demás es investigar mucho (y entender no nomás copiar). Mis soluciones son realmente no las mejores. Hay mejores maneras de centrar los elementos a la pantalla pero aún no los domino.

Las iteraciones y demás, lo mismo, estaré tratando de usarlas para cada vez entender más.

El punto es un día poder hacer todo desde cero, desde mi mente jaja Gracias! Suerte!