日付入力項目で、ユーザーが入力した値のバリデーションを行いたいです。
入力された値はスラッシュ区切りの「2023/01/10」という値で渡ってきます。
この入力値を引数として、Dateオブジェクトをインスタンス化しています。
const date = new Date(inputValue)
入力値が「2023/02/31」とした場合、上記の実装では以下のような結果になります。
const date = new Date(inputValue) console.log(date) // Fri Mar 03 2023 00:00:00 GMT+0900 (日本標準時) console.log(date.getMonth()) // 2 console.log(date.getDate()) // 3
「2023/02/31」は「2023/03/03」に置き換わってしまいます。
これによって、getDateなどで取得する値をisNaNで判定し、存在確認を行うといった条件分岐が出来ません。
// 2/31は存在しないのでエラーとしたいが、3/3に置き換わる事によって以下の判定を突破してしまう if (Number.isNaN(date.getDate())) { return '日付が正しくありません' }
これの良い解決方法は何かありますでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。