JavaScript验证输入仅包含提交时的整数

时间:2017-05-22 14:18:35

标签: javascript jquery html function internet-explorer-6

我一直试图找到一个好方法来解决这个问题。这是为IE6开发的技巧,因此不支持HTML5(这使得这很痛苦,以及为什么按钮实际上是一个跨度)。我需要允许所有输入到输入元素但是在提交时我需要验证输入是否为整数,如果它包含字母字符或小数则会抛出错误。

 <table id="studentIdInputTable">
        <tr><td colspan="3"><hr class="style-hr" /></td></tr>

        <tr><td><span class="underline bold">Selection 1</span></td>
        <td class="center"><span class="small-text">Employee ID</span></td>
         </tr>
        <tr><td>Please enter your Student ID to <span class="bold italic">start your registration process</span></td>
        <td class="center"><input type="text" maxlength="11" id="tbNewStudentId" /></td>
        <td> <span id="btnNewStudent" class="validation-button">Start</span></td></tr>
   </table>

我有HTML页面的原生javascript,如下所示

function CheckNewStudentId(){
var newStudentID = $("tbNewStudentId").val();
newEmployeeID = parseInt(newEmployeeID, 10);
        var isNum = /^\d+$/.test(IDnumber);
        if (isNum == false) {
            alert(IDnumber + " is not a valid student number. Please enter only numbers 0-9, containing no alphabetical characters.");
        }
}

如果这是更新的浏览器平台会更容易。我有什么想法可以解决这个问题吗?

编辑*** 为了参考其他用户,使用此功能

解决了这个问题
 function validIdCheck(Input){
 if(Number.isInteger(Input)==false){
alert("This is not a valid ID");
}
}

连接到这个jQuery点击功能

 $("#btnNewStudent").click(function(){
   var newStuId = $("#tbNewStudentId").val();
   newStuId=parseInt(newStuId);
   validIdCheck(newStuId);
 });

2 个答案:

答案 0 :(得分:1)

要检查数字是否为整数,请尝试此操作。它返回一个布尔值。

Number.isInteger(yourNumber) 

docs:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests

答案 1 :(得分:1)

使用部分代码:

function validateStudentId(id) { return /^\d+$/.test(id) }

如果是0到9之间的数字或数字组合,则返回true。

如果id不能以0开头,请尝试:

function validateStudentId(id) { return /^([1-9]|[1-9]\d+)$/ }

快速解释:

  1. ^
  2. 开头
  3. [1-9]数字介于1到9之间
  4. |
  5. \d数字(0到9)
  6. +至少发生一次且无限次发生
  7. $
  8. 结尾

    测试here