在Javascript中验证日期时间

Nit*_*rip 7 javascript vb.net asp.net

我需要一些帮助,根据浏览器的语言验证Javascript中的日期时间字符串.

我可以很容易地获得日期时间格式,例如,如果语言设置为pt-BR格式将是

dd/MM/yyyy HH:mm:ss
Run Code Online (Sandbox Code Playgroud)

我试过用这样的东西:

var dateFormat = "dd/MM/yyyy HH:mm:ss";
var x = Date.parseExact($("#theDate").val(), dateFormat);
Run Code Online (Sandbox Code Playgroud)

但是x总是空的.我在想因为Date.parseExact无法做到.我需要能够为所有浏览器语言执行此操作,我宁愿不使用其他库.使用正则表达式也是因为我需要编写这么多不同的表达式.

有没有人有任何建议可以帮助我走上正轨?我也不反对使用网络方法.

我尝试使用以下webmethod,它与en-US一起使用,但没有别的:

Public Function ValidateDates(ByVal strDate_In As String) As String
    Dim theFormat As String = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern() + " " + CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern()
    Try
        Dim d As DateTime = DateTime.ParseExact(strDate_In, theFormat, CultureInfo.CurrentCulture)
        Return "true"
    Catch ex As Exception
       Return "false"
    End Try
End Function
Run Code Online (Sandbox Code Playgroud)

Rad*_*ina 1

您可以使用正则表达式来执行此操作:

var dateFormat = "dd/MM/yyyy HH:mm:ss";
var x = $("#theDate").val().match(/^(\d{2})\/(\d{2})\/(\d{4}) (\d{2}):(\d{2}):(\d{2})$/);
console.log(x);
Run Code Online (Sandbox Code Playgroud)

演示: https: //jsfiddle.net/kzzn6ac5/

更新 以下正则表达式可以帮助您并根据您的需要进行改进:

^((\d{2}|\d{4})[\/|\.|-](\d{2})[\/|\.|-](\d{4}|\d{2}) (\d{2}):(\d{2}):(\d{2}))$
Run Code Online (Sandbox Code Playgroud)

它与以下格式与/.-andyyyy/mm/dd hh:mm:ss或匹配dd/mm/yyyy hh:mm:ss

更新的演示:https://jsfiddle.net/kzzn6ac5/1https://regex101.com/r/aT1oL6/1

可以在此处找到与日期匹配相关的更多正则表达式。