Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

159
Views
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 answers
Answer question

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 Report

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!