React Native: проверка номера мобильного телефона принимает только числовое значение - PullRequest
0 голосов
/ 21 мая 2018

Как проверить номер мобильного телефона в реагировать родной принять единственное числовое значение.

 <TextInput
      ref='mobileNo'
      keyboardType="numeric"
      style={[styles.textInput, { width: '100%' }]}
      placeholder='Enter mobile number'
      onChangeText={(value) => this.handleChange('mobileNo', value)}   />

Я использовал keyboardType="numeric", но его принимает специальный символ также, поэтому я хочу принять единственное числовое значение.

Ответы [ 4 ]

0 голосов
/ 09 августа 2018

Используйте эту проверку.

mobilevalidate(text) {
    const reg = /^[0]?[789]\d{9}$/;
    if (reg.test(text) === false) {
      this.setState({
        mobilevalidate: false,
        telephone: text,
      });
      return false;
    } else {
      this.setState({
        mobilevalidate: true,
        telephone: text,
        message: '',
      });
      return true;
    }
  }
0 голосов
/ 21 мая 2018

Попробуйте использовать keyboardType='phone-pad'.

0 голосов
/ 21 мая 2018

Вам необходимо проверить, является ли входная строка числом или нет.Проверьте ниже код:

 <TextInput
   ref='mobileNo'
   keyboardType="numeric"
   style={[styles.textInput, { width: '100%' }]}
   placeholder='Enter mobile number'
   onChangeText={(value) => 
   let num = value.replace(".", '');
     if(isNaN(num)){
         // Its not a number
     }else{
        this.handleChange('mobileNo', num)}  
     }
 />
0 голосов
/ 21 мая 2018

Способ сделать это - проверить в обработчике onChangeText, какой ввод был набран, и выдать ошибку, если пользователь ввел нецифровый символ.

Если поле является контролируемым компонентом (его значение задается из переменной состояния, а переменная состояния устанавливается в обработчике onChangeText), вы вообще не можете принять недопустимый символ (так что пользовательвведите, например, «.», и он не будет отображаться в формате dven).

Объясните ли вы пользователю, почему его ввод не принят, решать вам (либо написав его в метке поля,например, «номер телефона (только цифры), либо в строке ниже поля, либо путем отображения ошибки).

...