限制文本框只能输入两位小数
怎么限制只能输入两位小数啊?下面的代码是限制只能输入数字和一个小数点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; 展开
下面的代码是限制只能输入数字和一个小数点
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; 展开
3个回答
展开全部
正则表达式的Pattern是这样的: "^\\d+.\\d{2}"
解释一下:^ 表示是开头,就是字符串开头位置
\\ 表示的是转义的\
所以\\d就是\d 表示任意一个数字 而在后面加一个+表示 1个或者多个数字
. 就是小数点
\\d{2} 大括号内包含2意思就是有2个任意的数字。
这样符合这个模型的就是你所需要的两位小数的。
所以你在js中用正则表达式进行对用户输入值的判断,判断模板就是这个。
然后判断js中函数的返回值,如果是true就是符合,那么进行下一步操作
如果为false,那么将文本框的value重置为“”, 也可以再增加alert函数提示用户输入格式不对。
解释一下:^ 表示是开头,就是字符串开头位置
\\ 表示的是转义的\
所以\\d就是\d 表示任意一个数字 而在后面加一个+表示 1个或者多个数字
. 就是小数点
\\d{2} 大括号内包含2意思就是有2个任意的数字。
这样符合这个模型的就是你所需要的两位小数的。
所以你在js中用正则表达式进行对用户输入值的判断,判断模板就是这个。
然后判断js中函数的返回值,如果是true就是符合,那么进行下一步操作
如果为false,那么将文本框的value重置为“”, 也可以再增加alert函数提示用户输入格式不对。
追问
非常感谢 ~~~~~~~~~大半夜的还帮我答问题~~~~~~
追答
不必客气
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询