Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

155
Visualizações
Pregunta de validación del número de estudiante de JavaScript

nuevo en esto, así que espero que mi pregunta sea lo suficientemente específica para que tenga sentido.

Estoy tratando de crear una página web que valide un "Número de estudiante" ---

  • debe comenzar con una "A"
  • después de la A debe haber exactamente 8 dígitos numéricos,
  • pero no pueden ser todos 0

Por ejemplo, A89071231 sería un número de estudiante válido, pero A00000000 no lo sería, ni solo "A" o "A123".

La entrada del usuario debe ser A + exactamente 8 dígitos que no sean todos ceros.

Lo que tengo hasta ahora es esto a continuación. Donde "StudentNo" = una etiqueta de identificación HTML y la función "calcular" es totalizar el promedio de calificaciones de los estudiantes.

Solo necesito ayuda para descubrir cómo escribir el código para que cada dígito que sigue al primer carácter A pueda ser cualquier cosa entre 0-9 y aún así dar una entrada válida, además de una situación en la que el usuario ingresa todos los 0 después de la "A".

Pensé que regex sería la forma más fácil de hacerlo, o usando substr() o substring() pero no estoy muy familiarizado con JavaScript y parece que no puedo entender dónde me estoy equivocando.

¡¡¡Gracias por cualquier ayuda que usted puede dar!!!

 function calculate(); var sno = $("StudentNo").value.trim(); if(sno === "" || !sno.startsWith("A") { alert("Student Number is missing, please enter your Student A Number."); $("StudentNo").focus(); return; }
about 4 years ago · Juan Pablo Isaza
3 Respostas
Responde à pergunta

0

Solo tienes que manejar 3 condiciones como

1) !sno.startsWith("A")

2) sno.length !== 9

3) sno.slice(1).match(/0{8}/)

 function validateSNo(sno) { if (!sno.startsWith("A") || sno.length !== 9 || sno.slice(1).match(/0{8}/)) { // alert("Student Number is missing, please enter your Student A Number."); // $("StudentNo").focus(); console.log( "Student Number is missing, please enter your Student A Number." ); } else { console.log("Perfect student number") } } validateSNo("S"); validateSNo("A00000000"); validateSNo("A123"); validateSNo("A12345678");

about 4 years ago · Juan Pablo Isaza Relatório

0

Espero que las siguientes respuestas te ayuden.

He comprobado lo siguiente piensa

  • Primer carácter A o no
  • El resto del primer carácter tiene solo un número o no (A12345678 es válido, A1234567B no es válido)
  • El resto del primer carácter tiene 8 dígitos o no (A + 8 dígitos o no)
  • El resto del primer carácter solo tiene valor 0 o no (A00000000 o no)

Fragmento de código

 function checkStudentNumber(studentNumber){ var sno = studentNumber; // get student number var checkInitialCharacter = sno.charAt(0) === "A" ? true : false; // check studentno first character A or not, if A output will be true var exeptFirstLetter = sno.slice(1); // Separate execpt first character from string var checkexeptFirstLetterCharactersLength = exeptFirstLetter.length == 8 ? true : false; // character separated charactee count qual to 8 or not, if YES output will be true. var checkExceptFirstCharacters = /^\d+$/.test(exeptFirstLetter) ? true : false; // confirm rest of the first character has only numbers. var convertExecptFirstlettersintoNumber = checkExceptFirstCharacters ? parseFloat(exeptFirstLetter) : null; // convert rest of the first character into number var checkZeroValues = convertExecptFirstlettersintoNumber === 0 ? true : false; // check rest of the first character has only zero digits or not, if(!checkInitialCharacter || checkZeroValues || !checkexeptFirstLetterCharactersLength || !checkExceptFirstCharacters ){ alert(studentNumber + " : Student Number is missing, please enter your Student A Number."); } else { alert(studentNumber + " : Perfect student number"); } } checkStudentNumber("A00000000"); // Output: Student Number is missing, please enter your Student A Number. checkStudentNumber("B00000000"); // Output: Student Number is missing, please enter your Student A Number. checkStudentNumber("A12345"); // Output: Student Number is missing, please enter your Student A Number. checkStudentNumber("A12345678"); // Output: Perfect student number. checkStudentNumber("ABCD78"); // Output: Student Number is missing, please enter your Student A Number. checkStudentNumber("A0000000B"); // Output: Student Number is missing, please enter your Student A Number. checkStudentNumber("A12345B78"); // Output: Student Number is missing, please enter your Student A Number. checkStudentNumber("A45645678"); // Output: Perfect student number.

about 4 years ago · Juan Pablo Isaza Relatório

0

Debería poder usar expresiones regulares con aserción de anticipación negativa , usando el grupo: (?!0{8}) . Seguiríamos esto con los 8 dígitos requeridos (\d{8}) .

Envolveríamos esto en una función checkStudentNumber() , que toma el número de estudiante como el único parámetro y devuelve un valor booleano verdadero/falso que indica si el número es válido.

 function checkStudentNumber(number) { return /^A(?!0{8})(\d{8})$/.test(number) } const numbers = ['A12345670', 'A00000001', 'A00010000', 'A12345678','A00000000', 'A1234567', 'A123456789', 'GARBAGE']; console.log('Tests:'); console.log('\nNumber \tValid'); numbers.forEach(number => console.log(number.padEnd(8, ' '), '\t', checkStudentNumber(number) ? 'Yes': 'No'));
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda