我正在React本机中开发应用程序,并希望允许用户仅输入字母或仅数字输入,因此如果第一个字符是字母,则用户将无法在其后输入任何数字,如果相反第一个字符是数字,然后用户将不能再输入任何字母。实际上甚至不知道如何启动它,我想最好是使用正则表达式检查第一个字符,然后基于此禁用键入字母/数字但不知道如何执行的操作。
(/[a-zA-Z]/).test(this.state.myValue.charAt(0)) ? "disable typing numbers" : "disable typing letters"
我的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)}
}
答案 0 :(得分:3)
您可以使用
/^(?:[A-Za-z]+|\d+)$/.test(this.state.myValue)
详细信息
^
-字符串的开头(?:
-一个“容器”非捕获组的开始:
[A-Za-z]+
-1个以上字母|
-或\d+
-1个以上数字)
-组结束$
-字符串的结尾。