React native React Native-如何仅使用数字键盘(无标点符号)
有没有一种不用标点符号的数字键盘按键方法React native React Native-如何仅使用数字键盘(无标点符号),react-native,keyboard,numeric,React Native,Keyboard,Numeric,有没有一种不用标点符号的数字键盘按键方法 <TextInput keyboardType='numeric' ..... /> 如果我使用secureTextEntry={true},它会得到我想要的正确键盘,但值会被替换为* 这就是我得到的: 这就是我想要的: 你试过数字键盘了吗?number pad和numeric在iOS上对我都适用。请试试这个 <TextInput keyboardType = 'numeric'/> 键盘类型={“数字键
<TextInput keyboardType='numeric' ..... />
如果我使用secureTextEntry={true}
,它会得到我想要的正确键盘,但值会被替换为*
这就是我得到的:
这就是我想要的:
你试过数字键盘了吗?
number pad
和numeric
在iOS上对我都适用。请试试这个
<TextInput
keyboardType = 'numeric'/>
键盘类型={“数字键盘”}适用于Android。
注意:我使用的是react原生元素的FormInput。我也有同样的问题 我可以解决这样的问题:
keyboardType={Device.isAndroid ? "numeric" : "number-pad"}
然后在onChangeText
的方法调用中执行以下操作:
const cleanNumber = number.replace(/[^0-9]/g, "");
this.setState({
cleanNumber
});
它是TextInput的值属性
value={this.state.cleanNumber}
React native未提供可从键盘上删除标点符号的键盘类型
keyboardType
。您需要使用带有replace方法的正则表达式从文本中删除标点符号,并设置keyboardType='numeric'
正则表达式
/[-\*;,.{}[]\/]/gi
示例代码
onTextChanged(value) {
// code to remove non-numeric characters from text
this.setState({ number: value.replace(/[- #*;,.<>\{\}\[\]\\\/]/gi, '') });
}
onTextChanged(值){
//从文本中删除非数字字符的代码
this.setState({number:value.replace(/[-\*;,.\{\\\\[\]\\\/]/gi,,))});
}
请查看零食链接
Android不支持没有标点符号的键盘类型对于Android,在我的例子中,我禁止设置任何特殊字符 以下是我所做的:
const inputRef = useRef(null);
const setRefValue = v => {
const clean = v.replace(/[^0-9]/g, '');
inputRef.current.value = clean;
inputRef.current.setNativeProps({ text: clean });
}
};
<TextInput
ref={inputRef}
keyboardType={numeric}
onChangeText={setRefValue}
/>
const inputRef=useRef(null);
const setRefValue=v=>{
const clean=v.replace(/[^0-9]/g');
inputRef.current.value=干净;
inputRef.current.setNativeProps({text:clean});
}
};
每次输入文本时,常量
setRefValue
将清除特殊字符。手机键盘btw会生成暂停
,等待
等键,因此这不是问题的答案,我不会构建一个只支持IOS的应用程序!由于某些原因,Ipad不支持数字键盘(尚未在平板电脑上测试)。注意:“数字键盘”仅适用于0.56或更高版本的android。