Dieser Artikel unterteilt das Geburtsdatum in mehrere Teile und stellt Schritt für Schritt den gesamten Prozess der Implementierung einer Geburtsdatumsüberprüfung vor. Für diejenigen, die sich für reguläre Ausdrücke für das Geburtsdatum interessieren, lesen Sie bitte
Bei der Formularvalidierung werden häufig reguläre Ausdrücke verwendet. Führen Sie eine Überprüfung des Geburtsdatums durch. Dieser Artikel gliedert das Geburtsdatum in mehrere Teile und stellt Schritt für Schritt den gesamten Prozess der Umsetzung einer Geburtsdatumsverifizierung vor. Ich glaube, dass Sie nach dem Verständnis des Inhalts dieses Artikels ein tieferes Verständnis und größeres Selbstvertrauen beim Schreiben regulärer Ausdrücke haben werden.
Wir teilen ein Geburtsdatum in der Form 2018-06-15 in drei Komponenten auf: Jahr, Monat und Datum, und schreiben das entsprechende von Regelmäßigkeit.
Geben Sie zunächst die Regeldefinition des regulären Ausdrucks für ein Jahr an:
Das Jahr besteht aus 4 Ziffern
Akzeptiert nur Jahreszahlen, die mit 19 und 20 beginnen
Nach den oben genannten Regeln ist es einfach, den regulären Ausdruck des Jahres zu schreiben:
var pattern = /^(19|20)\d{2}$/; //输出 true console.log(pattern.test("2008"));
where // zwei Der Schrägstrich und die Zeichen dazwischen sind die Definition von regulären Ausdrucksliteralen; 20, eins Die Funktion von Klammern besteht darin, mehrere Elemente zu einer Einheit zusammenzufassen, während d{2} bedeutet, dass eine beliebige ASCII-Zahl zweimal abgeglichen wird, d äquivalent zu [0-9] ist und {2} bedeutet, dass das vorherige Element zweimal abgeglichen wird .
Der obige reguläre Ausdruck kann die Jahre von 1900 bis 2099 abgleichen. Wenn Sie den Jahresbereich einschränken möchten, fügen Sie die folgenden Regeln hinzu:
Jahresbeginn 1920
Das Jahr endete 2018
Gemäß den oben genannten Regeln wird der reguläre Ausdruck geändert wie folgt:
var pattern = /^(19[2-9]\d{1})|(20((0[0-9])|(1[0-8])))$/; //输出 false console.log(pattern.test("1916")); //输出 true console.log(pattern.test("2008")); //输出 false console.log(pattern.test("2022"));
Zunächst wird die Regeldefinition des regulären Monatsausdrucks angegeben:
Der Monat kann 1-12 sein
Wenn der Monat 1-9 ist, kann 0 vorangestellt werden
Gemäß den oben genannten Regeln sind die folgenden regulären Regeln und einfachen Tests gegeben:
var pattern = /^((0?[1-9])|(1[0-2]))$/; //输出 false console.log(pattern.test("19")); //输出 true console.log(pattern.test("02")); //输出 true console.log(pattern.test("2")); //输出 true console.log(pattern.test("11"));
Geben Sie zunächst die Regeldefinition von an regulärer Datumsausdruck:
Datum Es kann 1-31 sein
Wenn das Datum 1-9 ist, können Sie 0 vor < hinzufügen 🎜>
var pattern = /^((0?[1-9])|([1-2][0-9])|30|31)$/; //输出 false console.log(pattern.test("32")); //输出 true console.log(pattern.test("02")); //输出 true console.log(pattern.test("2"));
var pattern = /^((19[2-9]\d{1})|(20((0[0-9])|(1[0-8]))))\-((0?[1-9])|(1[0-2]))\-((0?[1-9])|([1-2][0-9])|30|31)$/; //输出 true console.log(pattern.test("1923-3-18")); //输出 true console.log(pattern.test("1923-4-31")); //输出 true console.log(pattern.test("1923-2-29")); //输出 true console.log(pattern.test("2016-2-29"));
var checkBirth = function (val) { var pattern = /^((?:19[2-9]\d{1})|(?:20(?:(?:0[0-9])|(?:1[0-8]))))\-((?:0?[1-9])|(?:1[0-2]))\-((?:0?[1-9])|(?:[1-2][0-9])|30|31)$/; var result = val.match(pattern); if(result != null) { var iYear = parseInt(result[1]); var month = result[2]; var date = result[3]; if(/^((0?[469])|11)$/.test(month) && date == '31') { return false; } else if(parseInt(month) == 2){ if((iYear % 4 ==0 && iYear % 100 != 0) || (iYear % 400 == 0)) { if(date == '29') { return true; } } if(parseInt(date) > 28) { return false; } } return true; } return false; } //输出 true console.log(checkBirth("1923-3-18")); //输出 false 4月份没有31日 console.log(checkBirth("1923-4-31")); //输出 false 平年 console.log(checkBirth("1923-2-29")); //输出 true 闰年 console.log(checkBirth("2016-2-29"));
Erweiterung
Nach Meinung des V2EX-Netizen xiangyuecn ist der obige Logikcode von checkBirth zu viel, was in der Tat etwas niedrig ist . Aktualisieren Sie nun den obigen Code wie folgt:var checkBirth = function (val) { var pattern = /^((19[2-9]\d{1})|(20((0[0-9])|(1[0-8]))))\-((0?[1-9])|(1[0-2]))\-((0?[1-9])|([1-2][0-9])|30|31)$/; if(pattern.test(val)) { var date = new Date(val); var month = val.substring(val.indexOf("-")+1,val.lastIndexOf("-")); return date && (date.getMonth()+1 == parseInt(month)); } return false; }
Konfiguration der globalen Ajax-Ladebox (Ladeeffekt)
Beherrschen Sie schnell Reverse Ajax in 30 Minuten
Ajax implementiert eine intelligente Eingabeaufforderungssuchfunktion
Das obige ist der detaillierte Inhalt vonJavaScript-Schritte zum Implementieren eines regulären Ausdrucks für das Geburtsdatum. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!