0

このWebサイトから見つけた次の正規表現があります:

Bt どこかで構文が正しくなく、エラーがスローされます。

var myDate = /^(0?[1-9]|1[0-2])\/(0?[1-9]|[12][0-9]|3[01])\/(19|20)[0-9]{2};

ただ明確にします:

日付は 1900 年 1 月 1 日から 2099 年 12 月 31 日までの任意の日付にすることができますが、形式は厳密に次のようにする必要があります。

DD/MM/YYYY

私はウェブ上にいくつかの解決策があることを知っています.

そのすぐ上に、正常に機能する電子メール検証を配置したため、おそらく構文ミスです。

var email = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
4

1 に答える 1

5

コンソールからのメッセージは言う

SyntaxError: unterminated regular expression literal

/行末にa がないので、そうする必要があります

var myDate = /^(0?[1-9]|1[0-2])\/(0?[1-9]|[12][0-9]|3[01])\/(19|20)[0-9]{2}/;

コメントで指摘されているように$最後に/. これは、文字列の末尾に一致する必要があることを正規表現に示します (OP の後半にある電子メールの例を参照してください)。

余談として; 正規表現を使用して日付の一般的な形式を検証することは有効であり、価値があります。正規表現を使用して、それが実際の実際の有効な (つまり、2012 年 2 月 30 日ではない) 日付であることを検証しようとするのは面倒です。それを適切に行うための正規表現は、何ページにもわたる長いページになります!

于 2013-01-23T12:44:55.170 に答える