Как проверить, есть ли у переменной определенные символы в React?

Здесь новый разработчик React!

Я пытаюсь проверить, есть ли в датах моего массива определенные символы, например. "2019" или "-11-". Мне нужно посмотреть, нет ли в массиве [i] даты, чтобы добавить введенную дату в этот слот. Я мог бы использовать !== undefined или isNaN, но по какой-то причине выдается число или empty как ошибка...

Я пробовал много разных подходов, но мне кажется, что это может быть выходом. Если кто-то другой не найдет лучшего решения: D

Спасибо за ваше время ^_^ Надеюсь, это простое решение, которое я просто не заметил!

/* 
date = user-inputted date (XXXX-XX-XX)
dateData = {name, dates} in database ("name", "XXXX-XX-XX")
newOrder[] = dateData.dates, but rearranged to a correct order, no date 
in the spot where "date" should be added 
*/

let newOrder = [dateData.length + 1];

for (let i = 0; i < newOrder.length; i++) {
  if (newOrder[i] /*solution here*/) {
    newOrder[i] = moment(date).format("YYYY-MM-DD");
    break;
  }
}

// after this I'll update the database with async
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
205
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

С момента вы можете получить день, месяц и год.

var check = moment('2014-07-28', 'YYYY/MM/DD');

var month = check.format('M');
var day   = check.format('D');
var year  = check.format('YYYY');

console.info(month, day, year);

Вы можете попробовать этот код.

"3-12-2019".indexOf('2019')

или

 "3-12-2019".startsWith('2019') || "3-12-2019".endsWith('2019')

Учитывая это: dateData.dates — это Множество, где находятся ваши даты.

// Loops through the dates in the Array[]
dateData.dates.forEach(date => {
  // Checks whether the date exists
  // !date: if date = '' or null or any other falsy values will return true 
  if (!date){
    date = moment(date).format("YYYY-MM-DD");
  }
});
Ответ принят как подходящий

При использовании момента вы можете использовать метод moment#isValid, чтобы проверить, является ли текущее значение допустимой датой.

Хотя мне не совсем понятно, чего вы пытаетесь достичь. Возможно, вы можете обновить свой пример некоторыми данными.

let newOrder = [dateData.length + 1];

for (let i = 0; i < newOrder.length; i++) {
  const parsedDate = moment(date);

  if (newOrder[i] && parsedDate.isValid()) {
    newOrder[i] = parsedDate.format("YYYY-MM-DD");
    break;
  }
}

Благодарю вас! Мне удалось найти решение, используя это, Фрэнка startsWith и используя try/catch..: D Но, наконец, это заработало!

Miska Rantala 26.07.2019 14:17

Другие вопросы по теме