Javascript 当用户输入时,如何在react native TextInput中每隔3位添加点?

Javascript 当用户输入时,如何在react native TextInput中每隔3位添加点?,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我有这样的价格输入: <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().replac

我有这样的价格输入:

<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(".", ""})}
/>
this.setState({price:newPrice.toString().replace(“.”,“})}
/>
我的目标是在用户打字时每3位数加一个点!就像这样(12.443.355) 这段代码
price.toString().replace(/(\d)(?=(\d\d\d)+(?!\d))/g,“$1.”}
工作正常,但当用户修改数字时,它会出错

请注意,我的问题不同于,我可以添加点,但当用户修改它时,它会弄糟


我不知道
to.toString().replace(“.”,“”)中的“to”是什么,但我确信您应该使用
to.toString().replace(/\./g,“”)而不是replace(“.”,“”)因为替换默认情况下只替换字符串中的第一个出现。

我找到了一个NPM库,可以帮助您解决这个问题。请检查这个是否应该用于输入IP地址?因为可能有更好的方法。可能有IP地址组件可用。这可能是只是输入错误,所以现在只做注释。首先,您的值集需要使用
this.state.price
,而不仅仅是
price
。其次,您的
onChangeText
处理程序不一致。请将箭头函数参数名称从
price
更改为避免与状态名称冲突,并删除多余的
.toString()
price:to.toString()
看起来像是一个输入错误。你的意思是
price:price.toString()
?对不起,“to”是一个输入错误,是“price”,但你的解决方案不起作用。我收到以下错误:“price.toString(…).replaceAll不是函数”。看来“replaceAll”函数根本不存在!@BlueTurtle我很抱歉,我的错…我会编辑我的答案。