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

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

问题描述:

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

 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);
     }
  }

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

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

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

 /^(\d+(\.\d+)?)(\/\d+(\.\d+)?)?$/.test('123.33/22.3')

不懂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;
};

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