首页 > 解决方案 > 用户键入时,如何在 react-native TextInput 中的每 3 位数字中添加点?

问题描述

我有这样的价格输入:

<Input
   keyboardType={"decimal-pad"}
   inputStyle={{color: "#EDF5E1"}}
   value={this.state.price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1.")}
   onChangeText={(newPrice)=>this.setState({price: newPrice.toString().replace(".", ""})}
/>

我的目标是在用户打字时每 3 位数字添加一个点!像这样(12.443.355)这段代码price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1.")}工作正常,但是当用户修改数字时,它就搞砸了!

请注意,我的问题与JavaScript 不同;如何在三位数字后设置点?,我可以添加点,但是当用户修改它时它会搞砸。

标签: javascriptreactjsreact-native

解决方案


我不知道"to" into.toString().replace(".", "")是什么,但我确定你应该使用to.toString().replace(/\./g, "")replace (".", "")因为replace默认情况下只替换字符串中的第一次出现。


推荐阅读