如何在角度验证日期

时间:2020-01-08 08:40:21

标签: angular typescript

我是新手。所以我需要你的一点帮助。单击搜索按钮时,如何验证日期字段。这是我的源代码。

这是我的搜索按钮代码

  public search() {
    debugger
    console.log(this.searchPhraseDate)
    let searchPhrase :any = (this.searchCriteria == "Keyword" || this.searchCriteria == "ReferenceNumber")? this.searchPhrase : this.searchPhraseDate
    if (searchPhrase != "" && this.selectedWorkflow.workflowName != null) {
      this.searchResults.length = 0
      this.allSearchResults = null
      this.isZeroResults = false
      this.searchMessage = "Searching..."
      this.showNoResultPannel = true
      // debugger
      if (this.searchCriteria == "Keyword") {
        console.log("CHECKED KEYWORD")
        this.KeywordSearch(searchPhrase)
      }
      else if (this.searchCriteria == "ReferenceNumber") {
        console.log("CHECKED REFERENCENUMBER")
        this.SearchByReferenceNumber(parseInt(searchPhrase))
      }
      else {
        console.log("CHECKED DATE")
        this.SearchByInitiateDate(searchPhrase)
      }
    }
    else{
      var alertString = this.translate.store.translations[this.translate.defaultLang].search.searchPhaseEmptyAlert;
      if(this.searchCriteria == "Keyword"){
        alert("Please Enter a Keyword");
      }else if(this.searchCriteria == "ReferenceNumber"){
        alert("Please Enter a Referece Number");
      }
      ****else if(this.searchPhraseDate == ""){
        alert("Please Enter a Date");
      }
      else{
          alert("Invalid Date Format");
      }****
    }
  }

这是我的搜索日期方法的源代码

  public SearchByInitiateDate(initiateDate:Date){

    this.apiService.SearchByInitiateDate(this.selectedWorkflow.id, initiateDate).subscribe((result: any) => {
      if (result != null) {
        this.allSearchResults = result
        this.allSearchCount = this.allSearchResults.length
        this.maxPageNumber = Math.ceil(this.allSearchCount / 10)
        this.configureSearchResults(1)
        this.isZeroResults = false
        this.showNoResultPannel = false
      }
      else {
        this.showNoResultPannel = true
        this.isZeroResults = true
        this.searchMessage = "No Search Results..."
      }
    })   
  }

1 个答案:

答案 0 :(得分:1)

您可以使用Date.Parse({string})函数https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse。 无效的日期将返回NaN

     
const prasedDate = Date.Parse(searchPhrase)

if (!isNaN(prasedDate)) {
  console.log("CHECKED DATE")
  this.SearchByInitiateDate(searchPhrase)
}

或者,momentJs库对于处理日期非常有用,您甚至可以指定要解析的预期格式:https://momentjs.com/docs/#/parsing/string-format/

相关问题