input输入价格小数点2位数后,不给用户输入

前几天刚去上班,上班第一天公司的老大就出了个难题给我。需求是一个价格输入框,输入数字加小数点。并且小数点后超过了两位数之后就不让用户继续输入了。

对于新手来说这个需求实在是头痛。

找了很多办法,试了很多遍,最后,用以下办法来解决了。

思路是用正则表达式来解决,当用户输入的时候,判断内容是不是符合正则。

首先编辑html代码


css样式代码根据项目的实际情况写哈。

最后是用jquery实现

代码如下

function InputPrice(obj){
   var reg = /^(-?\d+)(\.\d{1,2})?$/; //判断是否是数字和小数点2位数的正则表达式
   var val = parentFloat($(obj).val()); //把input的value值转换为浮点数;
   if(!reg.test(val) ){
       var txt = val.toFixed(2); //当用户输入价格小数点超过2位数,强制变成小数点2位
        $(obj).val(txt);
   }
}

以上代码,本人实测有效。

你可能感兴趣的:(input输入价格小数点2位数后,不给用户输入)