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。