Обработка чисел на FrontEnd [ReactJS] - PullRequest
1 голос
/ 13 июля 2020

У меня есть текстовый ввод, где пользователь вводит число в желаемом формате, но его необходимо проанализировать, чтобы серверная часть сохранила формат, понятный пользователю. «1200,33» можно записать как «1200,33», «1,200,33», «1.200,33» или даже «1'200,33» и при этом быть понятым серверной частью.

Есть ли способ сделать это из интерфейс?

1 Ответ

0 голосов
/ 14 июля 2020

Если предполагается, что сервер отвечает с таким же форматированием, то это то, что вы хотели бы реализовать на бэкэнде. В противном случае вы можете просто использовать приведенный ниже код в обработчике отправки на веб-интерфейсе.

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

Если есть ответ серверной части, который требует форматирования, сервер должен получить входные данные как есть и преобразовать их с помощью вышеуказанного метода. Выполните оценку и сравните результат с исходным вводом, чтобы переформатировать его (код для этого будет более сложным).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...