请问解决整数,货币,INT,DOUBLE,等类型的JavaScript验证--这个问题我过去提过,而且结贴,忽然发现并没有解决我的问题!只好旧话重提

孤独求败1978 2002-11-20 11:22:09
最近工程中需要验证数据,自然用的是JavaScript,比较头痛的是
1、验证年月日yyyy-mm-dd 和yyyy-mm-dd xx:xx
2、验证金钱类型:如 589.21
3、验证 整数,数字
我个人有一些脚本,但做的不好,不是不能完全验证,就是写的超级复杂,在这里看见不少高手脚本,但刚好没有我需要的,请各位高手指点,谢谢。
分绝对给,骗人是小狗,嫌少e-MAIL: lz.@263.net 我给加
感谢!
//=================================================
当时大家给我的解决办法是下面的....
但是我测试了 不能用 只好再请教高手!
请帮我解决这个问题!
解决正整数,数字,各种类型的数字怎样验证,要求有提示信息,并能给出正确的修改,或修改意见!

<script>
//检查是否为任意数(实数)
function isNumeric(strNumber) {
var newPar=/^(-|\+)?\d+(\.\d+)?$/
return newPar.test(strNumber);
}
//检查是否为正数
function isUnsignedNumeric(strNumber) {
var newPar=/^\d+(\.\d+)?$/
return newPar.test(strNumber);
}
//检查是否为整数
function isInteger(strInteger) {
var newPar=/^(-|\+)?\d+$/
return newPar.test(strInteger);
}
//检查是否为正整数
function isUnsignedInteger(strInteger) {
var newPar=/^\d+$/
return newPar.test(strInteger);
}
</script>
...全文
28 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
孤独求败1978 2002-11-20
  • 打赏
  • 举报
回复
下面是JK_10000(JK1) 帮我解决货币类型验证的方法,我感觉不错,不知道这种方法怎么能移植过来,用来解决其他验证!有知道的请帮我解答!谢谢!
<input type=text onblur="checkMoneyInput(this);">

<script>
function checkMoneyInput(obj,min,max) //作用是将输入变成Number(10,2)格式,默认范围是非负。
{
obj.value=obj.value.replace(/ /g,""); //去空格
if (obj.value=="") return false;
if (obj.value.substr(0,1)==".") obj.value="0"+obj.value;
if (obj.value.substr(0,2)=="-.") obj.value=obj.value.replace("-.","-0.");
var r, re;
var s = obj.value ;
var theMin=-0.0000001;
var theMax=10000000000;
if (min!=null) theMin=min;
if (max!=null) theMax=max;
if (s.length==0) return false;
re = /-{0,1}\d{1,10}\.{0,1}\d{0,2}/i;
r = s.match(re); //取数
if (r==null)
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了清除。");
obj.focus();
return false;
}
if ((r>=theMax)||(r<=theMin))
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的数值超出允许范围,我们已进行了清除。");
obj.focus();
return false;
}
if ( r!=s)
{
obj.value=r;
alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了修改。");
obj.select();
obj.focus();
return false;
}
if((/\./i).test(r)) r=r+"0000";
else r=r+'.0000';
obj.value=r.match(re);
}

</script>
JK_10000 2002-11-20
  • 打赏
  • 举报
回复

<input onblur="checkIntInput(this)">
<input onblur="checkDecimalInput(this)">
</select>
<script>

function checkDecimalInput(obj,min,max) //作用是将输入变成Number(10,6)格式,默认范围是非负。
{
obj.value=obj.value.replace(/ /g,""); //去空格
if (obj.value=="") return false;
if (obj.value.substr(0,1)==".") obj.value="0"+obj.value;
if (obj.value.substr(0,2)=="-.") obj.value=obj.value.replace("-.","-0.");
var r, re;
var s = obj.value ;
var theMin=-0.0000001;
var theMax=10000000000;
if (min!=null) theMin=min;
if (max!=null) theMax=max;
if (s.length==0) return false;
re = /-{0,1}\d{1,10}\.{0,1}\d{0,6}/i;
r = s.match(re); //取数
if (r==null)
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了清除。");
obj.focus();
return false;
}
if ((r>=theMax)||(r<=theMin))
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的数值超出允许范围,我们已进行了清除。");
obj.focus();
return false;
}
if ( r!=s)
{
obj.value=r;
alert("!!!!请注意:\n您刚才输入的数值不正确,我们已进行了修改。");
obj.select();
obj.focus();
return false;
}
obj.value=r;
}

function checkIntInput(obj,min,max) //作用是将输入变成整数,默认范围是非负。onblur event
{
obj.value=obj.value.replace(/ /g,""); //去空格
if(obj.value=="") return false;
var r;
var s = obj.value ;
var theMin=-1;
var theMax=10000000000;
if (min!=null) theMin=min;
if (max!=null) theMax=max;
if (s.length==0) return false;
r = parseInt(s);; //取数
if (r==null||isNaN(r))
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的整数不正确,我们已进行了清除。");
obj.focus();
return false;
}
if ((r>=theMax)||(r<=theMin))
{
obj.value="";
alert("!!!!请注意:\n您刚才输入的整数超出允许范围,我们已进行了清除。");
obj.focus();
return false;
}
if ( r!=s)
{
obj.value=r;
alert("!!!!请注意:\n您刚才输入的整数不正确,我们已进行了修改。");
obj.select();
obj.focus();
return false;
}
obj.value=r;
}

</script>

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧