javascript - FrontEnd [ReactJS] 上的数字处理
问题描述
我有一个文本输入,用户在其中输入他想要的格式的数字,但必须将其解析为后端保持对用户有意义的格式。
例如:数字“1200.33”可以写成“1200.33”、“1,200.33”、“1.200,33”甚至是“1'200.33”,仍然可以被后端理解。
有没有办法从前端做到这一点?
解决方案
如果服务器应该以相同的格式响应,那么这就是您想要在后端实现的东西。否则,您可以在前端的提交处理程序中使用以下代码。
const stringA = "1,200.33";
const stringB = "1'200.33";
const stringC = "1200.33";
const stringD = "1.200,33";
function convert(string) {
if(RegExp(/(\d+\.\d+\,\d+)/).test(string)) string = string.replace(/\./g,"").replace(",",".");
string = string.replace(/[,']/g,"")
return parseFloat(string);
}
console.log(convert(stringA))
console.log(convert(stringB))
console.log(convert(stringC))
console.log(convert(stringD))
如果有后端响应需要格式化,服务器应该按原样接收输入,并通过上述方法进行转换。执行您的评估,并将返回值与原始输入进行比较以重新格式化它(此代码会更详细)。
推荐阅读
- mysql - 使用 mysql 绘制 grafana 月度汇总数据
- r - 如何阻止 R Studio 将打开的脚本标记为未保存?
- python - 删除不在 html 中的标签内的文本
- r - mle 无法估计帕累托错误代码 100 的参数
- javascript - vue.js 中带有 3 个变量的条件语句
- javascript - 获取窗口参考并检测组件角度中的窗口关闭 2+
- flutter - 安装flutter_launcher_icons的问题
- c# - 如何使用 System.DirectoryServices.AccountManagement 从 c# asp.net 代码中获取 ADGroup 类型的安全性和分发
- c# - 尝试使用服务总线触发功能时收到错误消息“无法转换输入参数”,为什么?
- powershell - 使用 Azure 模块在 PowerShell 中使用 Azure 函数将文件上传到 Blob 存储