Reactjs 如何允许物料界面使用2个小数点分隔符?

Reactjs 如何允许物料界面使用2个小数点分隔符?,reactjs,material-ui,Reactjs,Material Ui,我在我的项目中使用MaterialUI,我希望允许用户在逗号或句点之间选择作为小数分隔符。它们不是货币输入字段,而是可以有小数点的数字字段。当前只接受句点,如果用户按逗号,则不会发生任何事情。使其type='number'将值解析逻辑限制为html中添加的默认逻辑。如果我们想解析根据规则在字段中输入的值,我们必须显式解析它。为此,我们可以使用正则表达式来测试字段上每次击键时的输入值。然后将限制填充值(如果它限制规则) 您可以使用以下正则表达式来测试输入 //Dot: /^\d+(\.\d{0,2

我在我的项目中使用MaterialUI,我希望允许用户在逗号或句点之间选择作为小数分隔符。它们不是货币输入字段,而是可以有小数点的数字字段。当前只接受句点,如果用户按逗号,则不会发生任何事情。

使其
type='number'
将值解析逻辑限制为html中添加的默认逻辑。如果我们想解析根据规则在字段中输入的值,我们必须显式解析它。为此,我们可以使用正则表达式来测试字段上每次击键时的输入值。然后将限制填充值(如果它限制规则)

您可以使用以下正则表达式来测试输入

//Dot: /^\d+(\.\d{0,2})?$/
//Comma: /^\d+(,\d{0,2})?$/

您可以在此处看到正在运行的演示:

您必须已将该输入字段的类型添加为“number”。这就是为什么它限制您只添加0-9和“.”的原因。您可以在这里做什么,使其工作,或者将任何特殊字符视为十进制分隔符。您可以使用一个正则表达式,它将在每次击键时测试输入字段的值,以检查在维护浮点数规则的同时是否使用了该特殊字符。它是数字类型。只接受期限。谢谢你的建议,但首先数字字段必须接受逗号,我看不出来。谢谢你的示例代码。但如何在逗号和句点之间切换呢?如果尚未使用分隔符,则用户将首先按下分隔符,而不是从下拉菜单中选择分隔符。在获得逗号或句点之前,不要测试正则表达式。一旦你有了这个集合,就开始在相关的正则表达式上测试,你会没事的。如果答案有帮助的话,也要投票并接受它,这样它也可以帮助其他人。