2 u014603095 u014603095 于 2015.05.29 16:18 提问

js如何使用正则表达式限制输入框小数和分数?

小数是这种: 23.3
分数是这种: 33/12
要求使用正则表达式!!!

6个回答

danielinbiti
danielinbiti   Ds   Rxr 2015.05.29 16:37
已采纳
 function regDg(){
     var c = ['33.01','33.121','33/12','a','33.','33/12.0'];
     var a ="^[0-9]+.([0-9])+$";
     var a2="^[0-9]+/([0-9])+$";
     var reg=new RegExp(a);
     var reg2=new RegExp(a2);
     for(var i=0;i<c.length;i++){
         var f = reg.test(c[i])||reg2.test(c[i]);
       console.log(f);
     }
  }
LSL1618
LSL1618   2015.05.29 16:36

题主没讲明白。要求输入框只能输入什么?禁止输入什么?

jbk3311
jbk3311   2015.05.29 16:37

题主没讲明白。要求输入框只能输入什么?禁止输入什么?+1

showbo
showbo   Ds   Rxr 2015.05.29 17:18

form提交的时候验证下有效性,如果不对就进制表单提交

 /^(\d+(\.\d+)?)(\/\d+(\.\d+)?)?$/.test('123.33/22.3')
wen_ge
wen_ge   2015.05.29 17:52

不懂lz意思 但是先来个小数的 而且是保留两位

function formatMoney(s) {
    if (/[^0-9\.\-]/.test(s) || s == null || s == "") return "0";
    s = s.toString();

    var after_tmp = '';
    var pos = s.indexOf(".");
    if(pos > 0){
        var before = s.substr(0,pos);
        var after = s.substr(pos+1,2).replace(/\./, "");
        var len = after.length;
        for(i=0; i<(2 - len); i++){
            after = len <= 1 ? after + '0' : '0' + after;
        }

        before = /^\-?\d+$/.test(before) ? before : '0';

        s = (before + '.' + after);
    }else{
        s = /^\-?\d+$/.test(s) ? s + '.00' : '0.00';
    }
    return s;
};

wsh1992o
wsh1992o   Rxr 2015.05.30 09:49

楼主的意思是让分数能够用分数的形式表现出来么

Csdn user default icon
上传中...
上传图片
插入图片