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)
使用您的部分代码:
function validateStudentId(id) { return /^\d+$/.test(id) }
如果它是一个数字或 0 到 9 的数字组合,这将 return 为真。
如果 id 不能以 0 开头,试试这个:
function validateStudentId(id) { return /^([1-9]|[1-9]\d+)$/ }
快速解释:
^
开头为
[1-9]
1 到 9 之间的数字
|
或
\d
数字(0 到 9)
+
至少出现一次,最多出现无限次
$
结尾为
测试一下here
我一直在努力寻找解决此问题的好方法。这是为 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)
使用您的部分代码:
function validateStudentId(id) { return /^\d+$/.test(id) }
如果它是一个数字或 0 到 9 的数字组合,这将 return 为真。
如果 id 不能以 0 开头,试试这个:
function validateStudentId(id) { return /^([1-9]|[1-9]\d+)$/ }
快速解释:
^
开头为[1-9]
1 到 9 之间的数字|
或\d
数字(0 到 9)+
至少出现一次,最多出现无限次$
结尾为
测试一下here