求replace 函数
小弟想做的是,一个<inputtype="text"/>中,只能输入正数(包括0、正数、小数)。如果输入了别的,自动替换成""(清空)。主要现在是replace(1,""...
小弟想做的是,一个<input type="text"/>中,只能输入正数(包括0、正数、小数)。如果输入了别的,自动替换成""(清空)。主要现在是replace(1,"")中,1这个位置的正则表达式不会写。写了一个replace(/[^\d]/g,''),可是却只能输入正整数,小数没有办法输入那个“. ” 号 。现在,求大侠给个完美的,同时要判断那个“.”不能在第一位。
展开
2个回答
展开全部
在input中加入onKeyUp="clearNoNum(this);"
function clearNoNum(obj)
{
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
function clearNoNum(obj)
{
//先把非数字的都替换掉,除了数字和.
obj.value = obj.value.replace(/[^\d.]/g,"");
//必须保证第一个为数字而不是.
obj.value = obj.value.replace(/^\./g,"");
//保证只有出现一个.而没有多个.
obj.value = obj.value.replace(/\.{2,}/g,".");
//保证.只出现一次,而不能出现两次以上
obj.value = obj.value.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询