<script>
<!--
function isCharsInBag (s, bag){
var i,c;
for (i = 0; i < s.length; i++) {
c = s.charAt(i);//字符串s中的字符
if (bag.indexOf(c) > -1) return c;
}
return "";
}
var testresults;
function IsFloat(str){ //该函数允许输入小数点和数字
var badChar = "0123456789. ";
testresults=isCharsInBag(str,badChar);
return (testresults);
}
//-->
</script>使用时:if ((! IsFloat(document.report.actual_sum.value)) || (document.report.actual_sum.value=="")){}
<!--
function isCharsInBag (s, bag){
var i,c;
for (i = 0; i < s.length; i++) {
c = s.charAt(i);//字符串s中的字符
if (bag.indexOf(c) > -1) return c;
}
return "";
}
var testresults;
function IsFloat(str){ //该函数允许输入小数点和数字
var badChar = "0123456789. ";
testresults=isCharsInBag(str,badChar);
return (testresults);
}
//-->
</script>使用时:if ((! IsFloat(document.report.actual_sum.value)) || (document.report.actual_sum.value=="")){}
你给的函数有问题.
1."if (bag.indexOf(c) > -1) return c;"这句使得只要value的第一个字符正确就结束循环.
2.不是value的字符的范围在badChar内就是合法的,象"123.212.32.5","..23.23"之类的值肯定是错误的谁有最好是在输入时就限制了这种内容的函数?