如何检查变量是否在 React 中具有某些符号?

How to check if a variable has certain symbols in React?

这里有一位新的 React 开发人员!

我正在尝试检查数组的日期中是否包含某些符号,例如"2019""-11-"。我需要查看 array[i] 是否没有将输入日期添加到该插槽的日期。我可以使用 !== undefinedisNaN,但由于某种原因它给出了一个数字或 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

用moment可以得到日月年

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.log(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 时,可以使用 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;
  }
}