现在有3个文本框,分别是 单价 , 数量 和 邮费,这3个必须做出一下的验证单价 : 金额必须是大于0.01及小于10000000.00的数字(小数最多为2位)数量 : 必须是大于0件,小于10000件邮费 : 必须是大于0.01及小于10000000.00的数字(小数最多为2位)好像要考虑好几个问题,一是只能输入数字,二是只能只有1个小数点,三是不能有负数,希望大家指点
调试欢乐多
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
<SCRIPT LANGUAGE="JavaScript">
<!--
function checkNum(obj){
var val = obj.value;
var fval = parseFloat(val);
if(isNaN(fval)){
alert('not number');
return;
}else{
var sval = new String(fval);
var i = sval.indexOf(".");
if(i>=0){
var ssval = sval.substring(i+1);
if(ssval.length > 2){
alert('只能是小于两位小数点的数');
return;
}
} if(fval<=0.01 || fval>= 10000000.00){
alert("金额必须是大于0.01及小于10000000.00的数字");
return;
}
}
}
//-->
</SCRIPT>
</HEAD><BODY>
单价:<input onblur="checkNum(this)">
</BODY>
</HTML>
function check(obj)
{
var re=/^(0|[1-9]+)\.\d{0,2}$/;
if(!re.test(obj.value))
{
alert('单价只能由数字组成且带有2位小数,格式为0.00')
}
if(obj.value<0.01||obj.value>10000000.00)
{
alert('单价只能大于0.01及小于10000000.00')
}
}
</SCRIPT>
单价:<input onblur="check(this)">
function check(obj)
{
var re=/^(0|[1-9]+)\.\d{2}$/;
if(!re.test(obj.value))
{
alert('单价只能由数字组成且带有2位小数,格式为0.00')
}
if(obj.value<0.01||obj.value>10000000.00)
{
alert('单价只能大于0.01及小于10000000.00')
}
}
</SCRIPT>
单价:<input onblur="check(this)">
onKeyUp="value=value.replace(/[^.0-9]/g,'')" onchange="value=value.replace(/[^.0-9]/g,'')"
解决二(还有小数点后的位数)可以放到JS函数里面判断
单价只能由数字组成且带有2位小数,格式为0.00如果你想要整数也可以,简单var re=/^\d{,}$|^(0|[1-9]+)\.\d{2}$/;
即可
function check(obj)
{
var re=/^(0|[1-9]+)(\.\d{1,2})?$/;
if(!re.test(obj.value))
{
alert('单价只能由数字组成且最多带有2位小数')
}
if(obj.value<0.01||obj.value>10000000.00)
{
alert('单价只能大于0.01及小于10000000.00')
}
}
</SCRIPT>
单价:<input onblur="check(this)">
这样不就可以包含整数了?
/(^(0|[1-9]+)\.\d{0,2}$)|(^(0|[1-9]+)$)/