我需要编写一个函数来检测字符串输入是否是日期的有效格式。允许的格式是:
#### (e.g. 2003)
##/#### (e.g. 12/2003)
#/#### (e.g. 9/2003)
##/####-##/#### (e.g. 12/2003-04/2005)
但我需要防止无效字符串(例如“20031”,“ABCD”,“200A”)。
我已经在VB中编写了一个函数来执行此操作(下面),但我需要在Javascript中执行此操作。
ETC.
Public Sub detectDateFormat(ByVal myDate As String)
If myDate Like "####" Then
'Do Stuff 1
ElseIf myDate Like "##/####" Or myDate Like "#/####" Then
'Do Stuff 2
ElseIf myDate Like "##/####-##/####" Then
'Do Stuff 3
Else
'Invalid date format
Exit sub
End If
End Function
似乎javascript没有等同于“Like”,并且检测一个字符是数字还是字母是很棘手的。任何人都可以建议一个好方法吗?
你最接近的可能是正则表达式。比LIKE更强大,但也可能更复杂。
例如:
If myDate Like "####" Then
将会:
if (/^\d{4}$/.test(myDate)) { ... }