限制文本框只能输入两位小数

怎么限制只能输入两位小数啊?下面的代码是限制只能输入数字和一个小数点functionclearNoNum(obj){//先把非数字的都替换掉,除了数字和小数点obj.va... 怎么限制只能输入两位小数啊?

下面的代码是限制只能输入数字和一个小数点
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("$#$",".");
这样写可以:
//把小数点后面超过两位的数字替换掉,也就是保留两位小数
var strs = "";
var midd = "";
var count = 0;
for(var i=0;i<obj.value.length;i++){
if(obj.value.charAt(i) == "."){
midd = "start";
}
if(midd == "start"){
count++;
}
if(count == 4){
break;
}
strs += obj.value.charAt(i);
}
obj.value = strs;
展开
 我来答
demol0326
2012-01-04 · TA获得超过1021个赞
知道小有建树答主
回答量:132
采纳率:0%
帮助的人:173万
展开全部
正则表达式的Pattern是这样的: "^\\d+.\\d{2}"
解释一下:^ 表示是开头,就是字符串开头位置
\\ 表示的是转义的\
所以\\d就是\d 表示任意一个数字 而在后面加一个+表示 1个或者多个数字
. 就是小数点
\\d{2} 大括号内包含2意思就是有2个任意的数字。
这样符合这个模型的就是你所需要的两位小数的。
所以你在js中用正则表达式进行对用户输入值的判断,判断模板就是这个。
然后判断js中函数的返回值,如果是true就是符合,那么进行下一步操作
如果为false,那么将文本框的value重置为“”, 也可以再增加alert函数提示用户输入格式不对。
追问
非常感谢 ~~~~~~~~~大半夜的还帮我答问题~~~~~~
追答
不必客气
px451622324
2012-01-04
知道答主
回答量:16
采纳率:0%
帮助的人:7.9万
展开全部
3楼正解
追问
有疑问啊  ~~~~~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
爱智珉真是太好了c1
2012-01-03 · TA获得超过120个赞
知道答主
回答量:253
采纳率:100%
帮助的人:102万
展开全部
用正则表达式
追问
怎么写啊?
呵呵 ~~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式