如何检查变量是否在 React 中具有某些符号?
How to check if a variable has certain symbols in React?
这里有一位新的 React 开发人员!
我正在尝试检查数组的日期中是否包含某些符号,例如"2019"
或 "-11-"
。我需要查看 array[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
用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;
}
}
这里有一位新的 React 开发人员!
我正在尝试检查数组的日期中是否包含某些符号,例如"2019"
或 "-11-"
。我需要查看 array[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
用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;
}
}