我需要一个React NativeTextInput
组件,它只允许输入数字字符(0-9)。我可以将keyboardType
设置为numeric
,这几乎可以让我在那里输入,除了句点()。但是,这并不能阻止将非数字字符粘贴到字段中。
到目前为止,我想出的是使用OnChangeText
事件来查看输入的文本。我从文本中删除任何非数字字符。然后将文本放在状态字段中。然后通过它的值属性更新TextInput
。代码片段如下。
<TextInput
style={styles.textInput}
keyboardType = 'numeric'
onChangeText = {(text)=> this.onChanged(text)}
value = {this.state.myNumber}
/>
onTextChanged(text) {
// code to remove non-numeric characters from text
this.setState({myNumber: text})
}
这似乎工作,但它似乎像一个黑客。还有别的办法吗?
这是正确的方法,直到这样的组件(或TextInput上的属性)被专门开发出来。
web具有用于输入元素的数字类型,但这是基于web的,react-母语不使用Web视图。
您可以考虑将该输入作为它自己的一个反作用组件(也许调用NoMbEnter)创建:这将使您能够重用它,甚至可以打开它,因为您可以创建许多具有不同值过滤器/检查器的TcTeTPUT。
立即纠正的缺点是确保向用户提供正确的反馈,以防止混淆其价值发生了什么
你可以这样做。它将只接受数字值,并限制为10个数字作为您的愿望。
<TextInput
style={styles.textInput}
keyboardType='numeric'
onChangeText={(text)=> this.onChanged(text)}
value={this.state.myNumber}
maxLength={10} //setting limit of input
/>
通过在页面中写入以下代码,可以查看输入的值:
{this.state.myNumber}
在onChanged()函数中,代码如下所示:
onChanged(text){
let newText = '';
let numbers = '0123456789';
for (var i=0; i < text.length; i++) {
if(numbers.indexOf(text[i]) > -1 ) {
newText = newText + text[i];
}
else {
// your call back function
alert("please enter numbers only");
}
}
this.setState({ myNumber: newText });
}
我希望这对其他人有帮助。
与其他答案一样,使用RegExp替换任何非数字要比使用带有白名单的for循环快。
对您的onTextChange处理程序使用此选项:
onChanged (text) {
this.setState({
mobile: text.replace(/[^0-9]/g, ''),
});
}
性能测试:https://jsperf.com/removing-non-digit-characters-from-a-string
注意:下面我讨论的文本字段是一个MFXTextField,我从MaterialFX获得。 我已经搜索了很多关于如何在JavaFX中创建只接受数字的文本字段的内容。我发现了很多视频和帖子,但它们都不适合我,可能是因为它们太老了,只在过去工作过,我真的不知道。 所以,我有一个信用卡文本字段,我需要它来拒绝字母或数字以外的任何内容。这是我的文本字段: 下面是我的代码,它为常规TextField接受Tex
下面是关于如何限制字符输入长度的代码 可以通过
问题内容: 有没有一种快速的方法来将HTML文本输入()设置为仅允许数字键击(加’。’)? 问题答案: 注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。 JavaScript 您可以使用以下功能过滤文本的输入值(支持CopyPaste,Drag+Drop,键盘快捷键,上下文菜单操作,不可键入的键,插入标记的位置,不同的键盘布局以及IE9以后的所有浏览器 : 现在,您可以使用
当我尝试对输入进行限制时,我在java中遇到了很多麻烦。在此示例中,我需要字符串代码仅接受和等符号。我如何检查以确保没有数字、字母或其他符号?谢谢
问题内容: 有没有一种快速的方法来将HTML文本输入()设置为仅允许数字键击(加’。’)? 问题答案: 注意: 这是更新的答案。下面的注释指的是一个旧版本,其中充斥着密钥代码。 JavaScript 您可以使用以下功能过滤文本的输入值(支持Copy + Paste,Drag + Drop,键盘快捷键,上下文菜单操作,不可键入的键,插入标记的位置,不同的键盘布局以及IE 9以后的所有浏览器) : 现
本文向大家介绍js计算文本框输入的字符数,包括了js计算文本框输入的字符数的使用技巧和注意事项,需要的朋友参考一下 使用JavaScript实时的计算用户当前输入的字符数函数代码: javascript实现统计字符数很简单,上面分享给大家的代码可以直接使用,希望对大家的学习有所帮助。