首页 > 解决方案 > 在小数点前后追加值Javascript

问题描述

我在表单上有数字字段,用户偶尔可以输入带小数位的十进制值,但一侧没有值。即,要输入的预期值可以是 5 或 5.00,但偶尔用户可以键入 0.5 或 5。所以在这种情况下,如果他们遗漏了小数点前的值,我想添加/附加 0.5 或如果他们遗漏了小数点后的值,我想添加/附加 5.00

.5 => 0.5
5. => 5.00

理想情况下,输入值将在 onBlur 或当用户单击/选项卡远离该字段或页面上的任何其他位置时更新。我对此的快速尝试目前如下(未经测试)

$('input').on('blur', function () {

  var currentValue = $(this).val();

  var splitNumber = currentValue.split('.');
  var beforeDecimal = splitNumber[0];
  var afterDecimal = splitNumber[1];

  if (beforeDecimal.length < 1)
  {
    //add one zero before decimal
  }

  if (afterDecimal.length < 1)
  {
    //add two zeros after decimal
  }

});

标签: javascript

解决方案


相反,您可以使用parseFloatand的组合toFixed

parseFloat('.5') --> 0.5
parseFloat('5.') --> 5

$('input').on('blur', function() {
  let value = this.value;
  
  if(!isNaN(value)) {
     let parsedValue = parseFloat(value);
     
     $('.output').text(parsedValue.toFixed(2));
  }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<input type="text" />

<span>Output: </span>
<span class="output">
</span>


推荐阅读