使用.match验证学号

时间:2017-03-08 14:00:18

标签: jquery validation

我正在尝试在学生编号不匹配时禁用href,但学生编号似乎没有定义。 loginbtn是激活href的按钮的id。

$("#loginbtn").click(function(e){
  var studentNumber = ("C10814698");
  studentNumber = studentNumber + $("#studentN").value;
  var studentNumberMatcher = /[A-Z][0-9]{8}/;
  var isValid = studentNumber.match(studentNumberMatcher);

  if ("studentNumber" !== isValid || ("studentNumber") === "") {
    e.preventDefault();  
    alert("Please enter a valid student number");
  }      
});             

2 个答案:

答案 0 :(得分:0)

您的代码中存在一些语法问题,例如使用不存在的value属性而不是val()方法,将数组与字符串进行比较以及将变量名称的字符串混淆。

  

我想将C10814698分配给studentNumber,检查用户输入是否与studentNumber匹配,如果没有禁用href以防止登录,如果为true则允许登录

在这种情况下,您可以像这样修改逻辑:

$("#loginbtn").click(function(e){
  var studentNumber = "C10814698";
  var input = $("#studentN").val();

  if (!input.trim() || studentNumber != input) {
    e.preventDefault();  
    alert("Please enter a valid student number");
  }    
});

答案 1 :(得分:0)

match()方法返回一个包含在字符串中匹配的部分的Array,如果没有匹配则返回null。所以在你的情况下,测试将是:

$("#loginBtn").click(function(e){
  //var studentNumber = ("C123456789");
  var studentNumber = $("#studentN").val();
  var studentNumberMatcher=/[A-Z][0-9]{8}/;
  var isValid = studentNumber.match(studentNumberMatcher);

  if ($("studentNumber").val() === "" || isValid === null) {
    e.preventDefault();  
    alert("Please enter a valid student number");
  } else {
    alert("It's ok !");
  }
});

我还纠正了代码中的问题! :)

示例:https://jsfiddle.net/sdzpwrbx/1/