Javascript 例如,如果有人试图复制粘贴文本,如何仅允许在react中输入数字

Javascript 例如,如果有人试图复制粘贴文本,如何仅允许在react中输入数字,javascript,reactjs,react-native,Javascript,Reactjs,React Native,我只允许文本输入,不允许在文本中复制粘贴 我已经确定数字键盘应该打开,但我只允许在这个输入字段周期中使用数字 <TextInput underlineColorAndroid='transparent' style={styles.TextInputStyle} placeholder='0.00' keyboardType={'numeric'} value={this.state.shipping

我只允许文本输入,不允许在文本中复制粘贴

我已经确定数字键盘应该打开,但我只允许在这个输入字段周期中使用数字

<TextInput
         underlineColorAndroid='transparent'
         style={styles.TextInputStyle}
         placeholder='0.00'
         keyboardType={'numeric'}
         value={this.state.shippingCharge}
         onChangeText={(shippingCharge) => this.setState({ shippingCharge })}
     />
this.setState({shippingCharge})
/>

尝试在输入时使用
Regex
验证(例如最大长度为100的数字):


onChangeTextInput=(文本)=>{
常量numeriregex=/^([0-9]{1100})+$/
if(数字通用测试(文本)){
this.setState({shippingCharge:text})
}
}

但是我已经有了一个关于更改文本的操作。我可以在一个文本输入中有两个onchangetext吗field@prog你试过我的密码?它是按照你说的做的你不能有两个onChangeText函数,但是你可以合并它们的代码。另一种方法是将验证和操作分开,然后在其他函数上调用它。onChangeTextInput=(text)=>{const numericRegex=/^([0-9]{1100})+$/if(numericRegex.test(text)){this.setState({shippingCharge:text}}}在检查
isNaN(parseFloat)后,我应该将代码更新状态的块放在哪里(shippingCharge))
当textinput被更改时。@BrunoMazzardo我想OP是在检查integer和float,而不仅仅是integer。是的,integer和float都是integer。无论如何,我需要做一些调整才能回答。我应该在我的App.js文件中放在哪里
<TextInput
     underlineColorAndroid='transparent'
     style={styles.TextInputStyle}
     placeholder='0.00'
     keyboardType={'numeric'}
     value={this.state.shippingCharge}
     onChangeText={this.onChangeTextInput}
 />



onChangeTextInput = (text) => {
    const numericRegex = /^([0-9]{1,100})+$/
    if(numericRegex.test(text)) {
        this.setState({ shippingCharge: text })
    }
}