Jac*_*cki 2 javascript regex reactjs react-native
我正在 React Native 中开发应用程序,并希望允许用户只输入字母或数字,所以如果第一个字符是字母,那么用户将无法在此之后输入任何数字,如果第一个字符是相反的数字,然后用户将无法在此之后键入任何字母。实际上不知道如何启动它,我想最好的方法是使用正则表达式检查第一个字符,然后基于此禁用键入字母/数字,但不确定如何操作。
(/[a-zA-Z]/).test(this.state.myValue.charAt(0)) ? "disable typing numbers" : "disable typing letters"
Run Code Online (Sandbox Code Playgroud)
我的 TextInput 看起来像这样:
<TextInput
onChangeText={e=> this.handleInput(e), "myValue"}
value={this.state.myValue}
/>
handleInput(value, key) {
/^(?:[A-Za-z]+|\d+)$/.test(value) ? "block number" : "block letter"
this.setState({[key]: value)}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用
/^(?:[A-Za-z]+|\d+)$/.test(this.state.myValue)
Run Code Online (Sandbox Code Playgroud)
细节
^ - 字符串的开始(?: - 开始一个“容器”非捕获组:
[A-Za-z]+ - 1+ 个字母| - 或者 \d+ - 1+ 位数字) - 小组结束$ - 字符串的结尾。