Я хотел бы использовать регулярное выражение в replace()
для форматирования ввода валюты с необязательной длиной цифр до десятичной точки и только одной или двумя цифрами после десятичной точки.
По сути, оно должно совпадатьчто-то вроде 9999999,00
или этого 9999999.00
, а не этого 9999999,000
.
У меня есть следующее регулярное выражение:
value.replace(/[^\d*((\.|\,)\d(\d)?)?$]/, "")
Но это не работает, так как позволяет использовать цифры, .
или ,
в любом порядке, вместо заданного формата.
Можно ли поместить эту строку ^\d*((\.|\,)\d(\d)?)?$
в квадратные скобки [^]
, чтобы соответствовать любым символам вне формата? Или, может быть, есть другой способ исправить это?
EDIT : я собираюсь использовать его с функцией react-final-form
parse
, чтобы разрешить только ввод данных данного формата и удалитьвсе остальные персонажи. Вот мой код и окс https://codesandbox.io/s/react-final-form-simple-example-o9jub?fontsize=14