在脚本标签下我需要在输入负数时包含“值必须为非负”的代码。我已经包含了“价值必须是数字”的代码。
<script type="text/javascript">
function test_ifinteger(testcontrol, nameoffield) {
var x = 0;
var isok = true;
var teststring = testcontrol.value;
if (teststring.length == 0)
return true;
else {
while (x < teststring.length) {
if (teststring.charAt(x) < '0' || teststring.charAt(x) > '9')
isok = false;
x++;
} //end while
if (!isok) {
alert(nameoffield + " must be a number!");
testcontrol.focus();
} //end else if(ok)
return isok;
}//end else if (teststring.length==0)
} //end function
</script>
答案 0 :(得分:0)
您可以检查字符串的第一个字符,如果是负数,则为“ - ”。
使用此:
var negative = "-1234";
if (negative[0] == '-')
MessageBox.Show("Negative Number");
或添加到您的代码中:
while (x < teststring.length) {
if (x == 0 && teststring.charAt(x) == '-')
MessageBox.Show("Negative Number - Do what you want");
if (teststring.charAt(x) < '0' || teststring.charAt(x) > '9')
isok = false;
x++;
此外,如果它是负数或不是数字,请考虑打破循环以避免不必要的循环迭代。 使用“break”命令。
if (x == 0 && teststring.charAt(x) == '-')
{
MessageBox.Show("Negative Number - Stopping loop");
break;
}
答案 1 :(得分:0)
尝试,
<script type="text/javascript">
function isNumber(n) {
return !isNaN(parseFloat(n)) && isFinite(n);
}
function test_ifinteger(testcontrol, nameoffield) {
var teststring = testcontrol.value;
if(isNumber(teststring)) {
var no=parseFloat(teststring); // or use parseInt
if(no<0) {
//negative
}
}
else {
//not a number
}
}
</script>