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 に答える