Existe-t-il un moyen de saisir un pavé numérique sans ponctuation?
<TextInput keyboardType='numeric' ..... />
si j'utilise secureTextEntry={true}
, il obtient le bon clavier que je veux, mais les valeurs sont remplacées par *
.
As-tu essayé number-pad
? tous les deux number-pad
et numeric
fonctionnent pour moi sur iOS.
J'ai eu le même problème.
Je pourrais résoudre faire quelque chose comme ça:
keyboardType={Device.isAndroid ? "numeric" : "number-pad"}
puis dans un appel de méthode à partir de onChangeText
en faisant ceci:
const cleanNumber = number.replace(/[^0-9]/g, "");
this.setState({
cleanNumber
});
et la valeur prop de TextInput
value={this.state.cleanNumber}
React native non fourni keyboardType
qui supprime la ponctuation du clavier. Vous devez utiliser une expression régulière avec la méthode replace pour supprimer la ponctuation du texte et définir keyboardType = 'numeric'
.
Expression régulière
/ [- # *;,. <> {} []\/]/gi
Exemple de code
onTextChanged(value) {
// code to remove non-numeric characters from text
this.setState({ number: value.replace(/[- #*;,.<>\{\}\[\]\\\/]/gi, '') });
}
Veuillez vérifier le lien de collation
keyboardType = {"pavé numérique"} Fonctionne sur Android. Remarque: j'utilise FormInput à partir de react-native-elements.