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

JavaScript validating input only contains integers on submit

我一直在努力寻找解决此问题的好方法。这是为 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>

我有 javascript HTML 页面的本地内容,如下所示

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);
 });

要检查数字是否为整数,试试这个。它 returns 一个布尔值。

Number.isInteger(yourNumber) 

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

使用您的部分代码:

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

如果它是一个数字或 0 到 9 的数字组合,这将 return 为真。

如果 id 不能以 0 开头,试试这个:

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

快速解释:

  1. ^ 开头为
  2. [1-9] 1 到 9 之间的数字
  3. |
  4. \d 数字(0 到 9)
  5. + 至少出现一次,最多出现无限次
  6. $ 结尾为

测试一下here