Разрешить вводить только буквы ИЛИ только цифры - PullRequest
2 голосов
/ 03 октября 2019

Я занимаюсь разработкой приложения на языке React native и хотел бы, чтобы пользователь мог вводить на ввод только буквы или только цифры, поэтому, если первым символом является буква, пользователь не сможет набрать после этого любое число, и если будет противоположность,первый символ - число, после чего пользователь не сможет набрать любую букву. На самом деле понятия не имею, как его запустить, я думаю, лучше всего было бы проверить сначала символ с помощью регулярного выражения, а затем, основываясь на этом отключить ввод букв / цифр, но не уверен, как это сделать.

(/[a-zA-Z]/).test(this.state.myValue.charAt(0)) ? "disable typing numbers" : "disable typing letters"

myTextInput выглядит так:

<TextInput
 onChangeText={e=> this.handleInput(e), "myValue"}
 value={this.state.myValue}
 />

handleInput(value, key) {
 /^(?:[A-Za-z]+|\d+)$/.test(value) ? "block number" : "block letter"

 this.setState({[key]: value)}
}

1 Ответ

3 голосов
/ 03 октября 2019

Вы можете использовать

/^(?:[A-Za-z]+|\d+)$/.test(this.state.myValue)

Подробности

  • ^ - начало строки
  • (?: - начало строкигруппа без захвата «контейнера»:
    • [A-Za-z]+ - 1+ букв
    • | - или
    • \d+ - 1+ цифр
  • ) - конец группы
  • $ - конец строки.

См. regex demo и график регулярных выражений :

enter image description here

...