我需要測試適當日期格式的輸入。我想接受幾種日期格式,所以我創建了一個驗證函數,用於測試至少有一種格式是否正確,並在這種情況下返回true。 我使用moment.js來測試日期。 當我只需鍵入與硬編碼字符串日期格式的情況下,功能的正常使用:moment.js從格式數組進行日期驗證
var multiDateValidator = function (value)
{
if ((moment(value, 'DD/MM/YYYY', true).isValid()) ||
(moment(value, 'D/M/YYYY', true).isValid()) ||
(moment(value, 'DD.MM.YYYY', true).isValid()) ||
(moment(value, 'D.M.YYYY', true).isValid()) ||
(moment(value, 'DD. MM. YYYY', true).isValid()) ||
(moment(value, 'D. M. YYYY', true).isValid())) {
return true;
}
return false;
};
但是,如果我想使用的允許的日期格式列表,這是行不通的,它永遠不會返回true 。
var allowedDateFormats = ['DD/MM/YYYY', 'D/M/YYYY', 'DD.MM.YYYY', 'D.M.YYYY', 'DD. MM. YYYY', 'D. M. YYYY'];
var multiDateValidator = function (value)
{
allowedDateFormats.forEach(function(dateFormat)
{
if (moment(value, dateFormat, true).isValid()) {
return true;
}
});
return false;
};
第二個函數有什麼問題?我知道我不太擅長JavaScript,但它應該工作,不是嗎?
範圍。 2代碼中的函數。 'return true'在第二個裏面,'return false'在第一個裏面。如果你添加了'console.log(「some text」);''above'return true',你會明白我的意思。 – JapanGuy
你說得對,我不能使用.forEach(),我必須使用...。 你可以發表您的評論作爲答覆我可以確認嗎? 謝謝 –
我已經發布我的評論作爲一個非常懶惰的解決方案,仍然有效的答案 – JapanGuy