首页 > 解决方案 > FrontEnd [ReactJS] 上的数字处理

问题描述

我有一个文本输入,用户在其中输入他想要的格式的数字,但必须将其解析为后端保持对用户有意义的格式。

例如:数字“1200.33”可以写成“1200.33”、“1,200.33”、“1.200,33”甚至是“1'200.33”,仍然可以被后端理解。

有没有办法从前端做到这一点?

标签: javascriptreactjs

解决方案


如果服务器应该以相同的格式响应,那么这就是您想要在后端实现的东西。否则,您可以在前端的提交处理程序中使用以下代码。

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))

如果有后端响应需要格式化,服务器应该按原样接收输入,并通过上述方法进行转换。执行您的评估,并将返回值与原始输入进行比较以重新格式化它(此代码会更详细)。


推荐阅读