2017-01-04 1 views
0

Ich habe diesen Regex-Code unten, um ein gültiges Datum zu validieren.So ermitteln Sie, ob das Datum in JS vollständig ist: Datum und Jahr

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; 
    } 
    } 
} 

Ich teste den Code, wie Sie I 2 Zustand sehen können haben in if (reg.test(dateField) == false && regs.test(dateField) == false) {. In dieser Zeile teste ich, ob das Datum das vollständige Datum (1.1.2017) oder (2017) ist. Wenn ich zwei verschiedene Daten eingabe, gibt es wegen der Bedingung false zurück. Wie erreiche ich das ?.

+0

Ich bin nicht sicher, was genau fragen Sie. Bitte klären Sie – Rajesh

+0

Wenn Sie nur einen regulären Ausdruck möchten, um Muster für "01.01.2017" oder "2017" zu testen, können sie sehr viel einfacher sein als das, was Sie haben, zB '/ $ \ d {1,2} \/\ d {1,2} \/\ d {4} $/'und'/^ \ d {4} $/'. Wenn Sie auch die Werte validieren möchten, ist das eine andere Geschichte (und sollte keinen regulären Ausdruck verwenden). – RobG

+0

@Rajesh Wenn Benutzereingabe 1/1/2017 oder 2017 es als wahr zurückgibt. Andernfalls wird false zurückgegeben. – KiRa

Antwort

1

Make Tag und Monat optional:

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

Danke Mate, das ist was ich suche. – KiRa

Verwandte Themen