【发布时间】:2019-05-12 01:03:20
【问题描述】:
我试图阻止我的 TextInput 获取像 $,%,^,&,(,) etc 这样的值。基本上我的 TextInput 应该只允许字母。我的方法如下。但我仍然可以输入这些其他字符。如何防止 TextInput 中的特殊字符
restrict(event) {
const regex = new RegExp("^[a-zA-Z]+$");
const key = String.fromCharCode(!event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
}
<TextInput
underlineColorAndroid='transparent'
allowFontScaling={false}
style={styles.questionText}
onKeyPress={e => this.restrict(e)}
value={firstNameState}
/>
【问题讨论】:
-
如何检测特殊字符?
-
试试
regex = /^[^!-\/:-@\[-`{-~]+$/; -
@WiktorStribiżew 谢谢它的工作。但有一个问题,特殊字符只有在我输入字符后才会被删除。因此,如果我在开始时输入了一个特殊字符,之后没有输入任何内容,我最终会在我的 TextInput 中输入一个特殊字符。我该如何处理?
-
我不知道为什么会这样。如果它仍然与正则表达式而不是代码有关,请尝试
/^[^!-\/:-@\[-`{-~]*$/ -
你解决了吗
标签: javascript regex reactjs react-native