2

我需要编写一个函数来检测字符串输入是否是日期的有效格式。允许的格式是:

#### (e.g. 2003)
##/#### (e.g. 12/2003)
#/#### (e.g. 9/2003)
##/####-##/#### (e.g. 12/2003-04/2005)

但我需要防止无效字符串(例如“20031”、“ABCD”、“200A”)。

我已经在 VB 中编写了一个函数来执行此操作(如下),但我需要在 Javascript 中执行此操作。

VB

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”,并且很难检测字符是数字还是字母。谁能提出一个好的方法来做到这一点?

4

1 回答 1

6

最接近的可能是正则表达式。比 LIKE 强大得多,但也可能更复杂。

例如:

If myDate Like "####" Then

将会:

if (/^\d{4}$/.test(myDate)) { ... }
于 2012-11-16T11:36:33.407 回答