js的://opt1 小数 opt2 负数 //当opt2为1时检查num是否是负数 //当opt1为1时检查num是否是小数 //返回1是正确的,0是错误的 function chknbr(num,opt1,opt2) { var i=num.length; var staus; //staus用于记录.的个数 status=0; if ((opt2!=1) && (num.charAt(0)=='-')) { //alert("You have enter a invalid number."); return 0;
} //当最后一位为.时出错 if (num.charAt(i-1)=='.') { //alert("You have enter a invalid number."); return 0; } for (j=0;j<i;j++) { if (num.charAt(j)=='.') { status++; } if (status>1) { //alert("You have enter a invalid number."); return 0; } if (num.charAt(j)<'0' || num.charAt(j)>'9' ) { if (((opt1==0) || (num.charAt(j)!='.')) && (j!=0)) { //alert("You have enter a invalid number."); return 0; } } } return 1; }
//当opt2为1时检查num是否是负数
//当opt1为1时检查num是否是小数
//返回1是正确的,0是错误的
function chknbr(num,opt1,opt2)
{
var i=num.length;
var staus;
//staus用于记录.的个数
status=0;
if ((opt2!=1) && (num.charAt(0)=='-'))
{
//alert("You have enter a invalid number.");
return 0;
}
//当最后一位为.时出错
if (num.charAt(i-1)=='.')
{
//alert("You have enter a invalid number.");
return 0;
} for (j=0;j<i;j++)
{
if (num.charAt(j)=='.')
{
status++;
}
if (status>1)
{
//alert("You have enter a invalid number.");
return 0;
}
if (num.charAt(j)<'0' || num.charAt(j)>'9' )
{
if (((opt1==0) || (num.charAt(j)!='.')) && (j!=0))
{
//alert("You have enter a invalid number.");
return 0;
}
}
}
return 1;
}
不用提交页面
另补充一下,我作的是java.
script已经实现过.用的就是循环,可是在java下运行较慢!请acefr() 把你的方法讲清楚!谢谢@
if (isNaN(your expression))
return false;
不过还请fft123() 和tanndy把你们的方法写清楚点,好让大家共同学习!
function cheak()
{
var s= document.all.AAA.value
alert(s);
if (isNaN(s))
{
alert("请输入数字!")
return false;
}
}
</script><body>
<form method="POST" action="">
<input type="text" name="AAA" value="" size="20">
<input type="submit" value="提交" name="B1"onclick="cheak()">
<input type="reset" value="重置" name="B2">
</form>
</body>
如果你对正则表达式熟悉的话,你可以用正则表达式直接在输入框限制。
如果用java在服务器端判断,那么可以这么做:double d = 0.0;
String str = request.get.....;//取到用户输入的值
//这里可以trim()一下,防止用户输入的是空格
if(str.length()>0)//防止输入为空
{
try
{
d = Double.parseDouble(str); //d就是你要的数字了,当然,可以是小数
}
catch(Exception e)
{
....//表示用户输入的不是数字,这里做捕获异常的处理
}
}
else
{
.........//异常处理
}
//后面的你就可以使用d了
你的isNaN 估计是自己写的JS函数吧,你不把JS函数写出来,我还是不知道改怎么办!
acefr()
谢谢
你的方法我开始就是这样试的,但你怎样判断文本框中输入如:"12.0"于"12dd"的区别哪?
我要的是只能在输入全是数字的情况下才让正确通过!
不过,还是谢谢呢了!