2017-01-04 9 views
0

有効な日付を検証するために、この正規表現のコードを以下に示します。日付がJSでのみ完全な日付と年であるかどうかを調べる方法

function isValidDate(div) { 
var reg = /^((0?\d)|(1[012]))\/([012]?\d|30|31)\/\d{1,4}$/; 
var regs = /^\/\d{1,4}$/; 
var dateField = $(div).val(); 
if (dateField == "") { 
    //alert('Invalid inclusive dates.'); 
    return false; 
} else { 
    if (reg.test(dateField) == false && regs.test(dateField) == false) { 
     // alert('Invalid inclusive dates.'); 
     return false; 
    } else { 
     return true; 
    } 
    } 
} 

if (reg.test(dateField) == false && regs.test(dateField) == false) {に2つの条件があることがわかります。このコードをテストしています。この行では、日付が完全日付(2011年1月1日)または(2017)のみであるかどうかをテストしています。その2つの異なる日付を入力すると、条件のためにfalseを返します。これを達成する方法?

+0

私は正確にあなたが求めているもののわかりません。明確にしてください – Rajesh

+0

"1/1/2017"や "2017"のパターンをテストするための正規表現が必要な場合は、 '/ $ \ d {1,2} \/\ d {1,2} \/\ d {4} $/'と'/^ \ d {4} $/'となります。値を検証する場合は、別の話です(正規表現を使用しないでください)。 – RobG

+0

@Rajeshユーザー入力1/1/2017または2017にtrueが返されます。それ以外の場合はfalseを返します。 – KiRa

答えて

1

オプションのメイクの日と月:

var reg = /^(?:(0?\d|1[012])\/(0?[1-9]|[12]\d|30|31)\/)?\d{1,4}$/; 
//   ^^^          ^^ 
+0

これは私が探しているものです。 – KiRa

関連する問題