仅限于2个位置的十进制数

时间:2014-06-05 02:16:29

标签: javascript

这个功能运作正常,但我不想围绕我的号码...这个函数回合我的号码。

jquery( function() {
    $('.two-digits').keyup(function(){
        if($(this).val().indexOf('.')!=-1){         
            if($(this).val().split(".")[1].length > 2){ 

                if( isNaN( parseFloat( this.value ) ) ) return;
                this.value = parseFloat(this.value).toFixed(2);
            }  
         }            
         return this; //for chaining
    });
});

2 个答案:

答案 0 :(得分:0)

稍微改变你的代码。 删除.toFixed(2)并添加正则表达式以仅保留punkt后的2位数。

/(\d+\.\d{2})/i

\d+这得到了punkt之前的第一个数字, \.这是朋克, \d{2}这只需2位数 通过使用(),我们可以获得数组的第二个索引上的代码,因此我们得到项[1]。我们使用.match方法应用正则表达式。 More about regular expression here

所以这是代码:

$( function() {
    $('.two-digits').keyup(function(){
        if($(this).val().indexOf('.')!=-1){         
            if($(this).val().split(".")[1].length > 2){
                if( isNaN( parseFloat(this.value.match(/(\d+\.\d{2})/i)[1])) ) return;
                this.value = parseFloat(this.value.match(/(\d+\.\d{2})/i)[1]);
            }  
         }            
         return this;
    });
});

示例:http://jsfiddle.net/A24YA/1/

答案 1 :(得分:-1)

您可以使用此

Math.floor(this.value * 100) / 100