Я пытаюсь добавить - после второй цифры (даты) при нажатии клавиши для даты. Предположим, что если пользователь вводит сегодняшнюю дату как 24, после чего - следует добавить, а затем после ввода месяца «11» он должен вводить - автоматически.

Аналогично, при удалении символа на обратный интервал удаляется тире.

Шаблон: pattern="[0-9]{2}-[0-9]{2}-[0-9]{4}"

Функция

onChangeText = (text) => {
  
  text = text
    .replace(/^[a-zA-Z\-]+$/g, '')
    .replace(/^(\d\d\d\d)(\d)$/g, '$1-$2')
    .replace(/^(\d\d\d\d\-\d\d)(\d+)$/g, '$1-$2')
    .replace(/[^\d\-]/g, '')

}
0
Ashish Singh Rawat 24 Ноя 2019 в 13:54
1
Что ж, я пришел ответить на этот вопрос, а потом обнаружил, что мне неприятен этот синтаксис, который мне незнаком. const { getDate } = this.props - не могли бы вы объяснить, что это означает, или предоставить ссылку на MDN?
 – 
Mitya
24 Ноя 2019 в 14:47
1
Я использую в своем проекте react-native, this.props - это свойство, переданное родительскими компонентами. Обновление кода reactjs.org/docs/components-and-props.html
 – 
Ashish Singh Rawat
24 Ноя 2019 в 15:22
1
Конечно, но я подозревал, что это считается допустимым синтаксисом JS. Очевидно, это функция, о которой я пока не подозреваю. С моим, возможно, знанием JS данных, { foo } = bar определенно не будет допустимым синтаксисом.
 – 
Mitya
24 Ноя 2019 в 15:41
Это допустимый синтаксис в ES6, и он называется уничтожением объекта. Пожалуйста, пройдите по ссылке. developer.mozilla.org/en-US/ docs / Web / JavaScript / Reference /…
 – 
Ashish Singh Rawat
24 Ноя 2019 в 20:42

1 ответ

Здесь вы можете сделать что-то вроде этого, но вам нужно сначала объявить переменную и получить значение после regx. когда вы закончите с regx, объявите переменную и сохраните в ней значение, а затем примените приведенную ниже логику!

< Сильный > Пример вот так!

let data = '123233';

let newData = ''; // declare the golbal variable to put dash

for ( let str = 0; data.length > str; ++str )
  {
    if( str % 2 === 0 && str !== 0) // finding even number and also zero
      newData += '-',newData += data[str - 0];
    else
      newData += data[str]
  }

console.log(newData)

Применить эту логику в вашем коде, я надеюсь, вы получите ожидание!

Благодарность!

0
Ericgit 24 Ноя 2019 в 16:03
1
Я ищу на нажатие клавиши. Как только набрано 12 Черта, которая будет добавлена после этого
 – 
Ashish Singh Rawat
24 Ноя 2019 в 20:45
1
Не имеет значения, поместите этот код в функцию onpress, он будет работать так же, как вы ожидаете. и вы также можете поделиться своим кодом с нами где-нибудь, codepen, jsbin или ..!
 – 
Ericgit
24 Ноя 2019 в 21:48