我有这样的价格输入:
<Input
keyboardType={"decimal-pad"}
inputStyle={{color: "#EDF5E1"}}
value={this.state.price.toString().replace(/(d)(?=(ddd)+(?!d))/g, "$1.")}
onChangeText={(newPrice)=>this.setState({price: newPrice.toString().replace(".", ""})}
/>
我的目的是在用户输入时每3位数字添加点!这样(12.443.355)这件代码price.toString().replace(/(d)(?=(ddd)+(?!d))/g, "$1.")}
工作正常,但是当用户修改数字时,它会弄乱!
请注意,我的问题与JavaScript不同;如何在三位数之后设置点?
我不知道 to.toString().replace(".", "")
中的是什么,但是我敢肯定您应该使用 to.toString().replace(/./g, "")
而不是 replace("。",",",")是因为替换仅替换字符串中的第一次发生。