0
ユーザーが特定の形式で日付を入力するかどうかを確認する必要があります。私はUITextField
からこの入力を取得し、私はこの方法を検証しよう:DateFormatterが実際に日付の形式をチェックしていない
func checkDateInput(inputStr: String) -> Bool {
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "MM-dd-yyyy"
if let date = dateFormatter.date(from: inputStr) {
return true
}
return false
}
このメソッドを呼び出す前に、私はinputStr
が空でないことを確認してください。 アプリを実行したときに「12/07/2016」と入力すると、checkDateInput(inputStr: "12/07/2016")
の結果としてtrue
が返されますが、false
と表示されることが予想されます。ユーザーに「12-07- 2016」。 DateFormatter
は、私が提供する形式で " - "と "/"異なる文字を考慮していないようです。
日付の形式に完全に一致する方法を教えてください。たDateFormatterはまだその間違った入力をフォーマットできるので、それがtrueを返したシンプルなソリューションのための
この方法のように、
2
であなたのinputStr
の5
位置を文字を確認することができます。正しい文字列が必要な場合は、dateFormatter.string(date:from)を呼び出して正しい文字列を取得してください。チェックが重要な場合は、慣れていない正規表現を使用するか、ネイティブのString関数を使用してチェックするだけで十分です –