javascript - 在小数点前后追加值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
}
});
解决方案
相反,您可以使用parseFloat
and的组合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>
推荐阅读
- angular - Angular Reactive Form Validation:表达式在检查后发生了变化
- kubernetes - 在 GKE 中使用共享网络创建集群
- javascript - 如何处理异步获取不需要的结果?
- mysql - 无法从 Spring Boot 应用程序连接 MYSQL docker 容器
- c - 7位显示计数错误
- asp.net-mvc - nopCommerce 4.30 中 Web api 插件的 JWT 身份验证问题
- linux - crontab 不工作 */10: 没有这样的文件或目录
- ios - inception v3 coreML 是否已弃用?什么是替代品?
- docker - Docker Apple M1:来自守护进程的错误响应:拨打 unix docker.raw.sock:连接:没有这样的文件或目录
- c# - 在 Nest v7.10.0 中通过 SearchRequest 在特定索引名称中搜索