Ho bisogno di un'espressione regolare per il formato data: gg-mm-aaaa in Javascript.Espressione regolare per formato data- gg-mm-aaaa in Javascript
risposta
function parseDate(str) {
var m = str.match(/^(\d{1,2})-(\d{1,2})-(\d{4})$/);
return (m) ? new Date(m[3], m[2]-1, m[1]) : null;
}
Grazie a tutti, ha funzionato perfettamente ... – Gopesh
Prova questo:
'01-01-2012'.match(/\d{2}-\d{2}-\d{4}/)
Si noti che in questo modo che la data 33-12-2022 sarebbe considerata valida, come pure!
'01-01-2012'.match(/(?!3[2-9]|00|02-3[01]|04-31|06-31|09-31|11-31)[0-3][0-9]-(?!1[3-9]|00)[01][0-9]-(?!10|28|29)[12][089][0-9][0-9]/)
questo sembra solo per date valide dal 1800 al 2099. Nessun salto anno di supporto (come in assume ogni anno è un anno bisestile possibile).
Si prega di aggiornare con parte codice formattato. –
Beh, ho fatto questo:
'31-12-1987'.match(/(3[01]|[2][0-9]|0\d)-(1[0-2]|0\[1-9])-\d{4}/)
convalida il giorno 01-31, mese 01-12 e l'anno di quattro cifre. Fallisce solo il 30 febbraio e i mesi senza 31 giorni. Che è possibile pulire usando new Date('mm/dd/yyyy')
.
per la data hijri, non c'è '31'ˢᵗ ..ecco perché, rimuoviamo '1' da'/3 [01] .... 'per avere:'/(3 [0] | [2] [0-9] | 0 \ d) - (1 [0- 2] | 0 \ [1-9]) - \ d {4}/' –
/^ (\ d {1,2}) (\ /) (\ d {1,2}) \ 2 (\ d {4}) \ $/
dd-MM- yyyy
Verifica se anno bisestile. anni validi dal 1900 al 9999. Solo dd-mm-aaaa
var stringToValidate = "29-02-2012";
var rgexp = /(^(((0[1-9]|1[0-9]|2[0-8])[-](0[1-9]|1[012]))|((29|30|31)[-](0[13578]|1[02]))|((29|30)[-](0[4,6,9]|11)))[-](19|[2-9][0-9])\d\d$)|(^29[-]02[-](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)/;
var isValidDate = rgexp.test(stringToValidate);
Questa espressione regolare è per MM/DD/YYYY e M/D/AAAA
var date_regex = /^(0?[1-9]|1[012])[\/](0?[1-9]|[12][0-9]|3[01])[\/]\d{4}$/;
molto grazie Rawat. –
Lavorare alcuni di quanto sopra insieme (principalmente @ gdZeus di) ora è possibile fai MM/gg/aaaa | MM-gg-aaaa | MM.GG.AAAA
/(^(((0[1-9]|1[012])[-/.](0[1-9]|1[0-9]|2[0-8]))|((0[13578]|1[02])[-/.](29|30|31))|((0[4,6,9]|11)[-/.](29|30)))[-/.](19|[2-9][0-9])\d\d$)|(^02[-/.]29[-/.](19|[2-9][0-9])(00|04|08|12|16|20|24|28|32|36|40|44|48|52|56|60|64|68|72|76|80|84|88|92|96)$)/
Inoltre, se si utilizza questa linea in un file js è possibile utilizzare il seguente, che restituisce un regexp letterale. Questo ti permetterà di verificare che una data è nel passato! Questo è utile per i compleanni. Puoi invertirlo per verificare che una data sia anche in futuro (ad esempio, controllare la carta di credito exp). Questo funzionerà quasi ovunque in javascript ma non se hai davvero bisogno di un valore letterale regexp. Ad esempio se lo stai serializzando in un altro formato senza la possibilità di eseguire js.
new RegExp('(^(((0[1-9]|1[012])[-/.](0[1-9]|1[0-9]|2[0-8]))|((0[13578]|1[02])[-/.](29|30|31))|((0[4,6,9]|11)[-/.](29|30)))[-/.]('+range(1920, new Date().getFullYear()).join('|')+')$)|(^02[-/.]29[-/.]('+range(1920, new Date().getFullYear()).filter(function(year){if (year % 4 == 0) { return true }}).join('|')+')$)/', 'g')
rendimenti:
/(^(((0[1-9]|1[012])[-\/.](0[1-9]|1[0-9]|2[0-8]))|((0[13578]|1[02])[-\/.](29|30|31))|((0[4,6,9]|11)[-\/.](29|30)))[-\/.](1920|1921|1922|1923|1924|1925|1926|1927|1928|1929|1930|1931|1932|1933|1934|1935|1936|1937|1938|1939|1940|1941|1942|1943|1944|1945|1946|1947|1948|1949|1950|1951|1952|1953|1954|1955|1956|1957|1958|1959|1960|1961|1962|1963|1964|1965|1966|1967|1968|1969|1970|1971|1972|1973|1974|1975|1976|1977|1978|1979|1980|1981|1982|1983|1984|1985|1986|1987|1988|1989|1990|1991|1992|1993|1994|1995|1996|1997|1998|1999|2000|2001|2002|2003|2004|2005|2006|2007|2008|2009|2010|2011|2012|2013|2014|2015)$)|(^02[-\/.]29[-\/.](1920|1924|1928|1932|1936|1940|1944|1948|1952|1956|1960|1964|1968|1972|1976|1980|1984|1988|1992|1996|2000|2004|2008|2012)$)\//g
NOTA: questo utilizza la funzione gamma di sottolineatura per generare le date. È possibile scrivere il proprio anche se, come questa versione molto poco elegante :)
function range(start, end) {
var foo = [];
for (var i = start; i <= end; i++) {
foo.push(i);
}
return foo;
}
$('#DOB').blur(function() {
var s = $('#DOB').val(); alert('Entered date is:' + s);
var parms = s.split(/[\.\-\/]/);
var yyyy = parseInt(parms[2], 10);
var d = new Date();
var n = d.getFullYear(); //alert('current year is :' + n);
if (yyyy > n || yyyy < 1900) {
alert('Improper date format, Please enter dd/mm/yyyy format. (invalid year)');
}
var mm = parseInt(parms[1], 10);
if (mm > 12 || mm < 0)
{
alert('Improper date format, Please enter dd/mm/yyyy format. (invalid month');
}
var dd = parseInt(parms[0], 10);
if (dd > 31 || dd < 0)
{
alert('Improper date format, Please enter dd/mm/yyyy format. (invalid day');
}
//var date = new Date(dd, mm - 1, yyyy, 12, 0, 0, 0);
//var ndate = (date.getMonth() + 1) && ddmm === date.getDate() && yyyy === date.getFullYear();
// alert('new date is:' + ndate);
});
Ecco Regex per più formati di data che lavorano per me:
//dd.MM.yyyy
var date_regex = /^(0[1-9]|1\d|2\d|3[01])\.(0[1-9]|1[0-2])\.(19|20)\d{2}$/;
alert(date_regex.test("02.02.1991"));
// //dd/mm/yyyy
// var date_regex = /^(0[1-9]|1\d|2\d|3[01])\/(0[1-9]|1[0-2])\/(19|20)\d{2}$/;
// alert(date_regex.test("02/12/1991"));
// //dd-mm-yyyy
// var date_regex = /^(0[1-9]|1\d|2\d|3[01])\-(0[1-9]|1[0-2])\-(19|20)\d{2}$/;
// alert(date_regex.test("02-12-1991"));
// //mm/dd/yyyy
// var date_regex = /^(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])\/(19|20)\d{2}$/;
// alert(date_regex.test("12/02/1991"));
// //yyyy.MM.dd
// var date_regex = /^((19|20)\d{2})\.(0[1-9]|1[0-2])\.(0[1-9]|1\d|2\d|3[01])$/;
// alert(date_regex.test("1991.12.02"));
// //yyyy/MM/dd
// var date_regex = /^((19|20)\d{2})\/(0[1-9]|1[0-2])\/(0[1-9]|1\d|2\d|3[01])$/;
// alert(date_regex.test("1991/12/02"));
// //yyyy-MM-dd
// var date_regex = /^((19|20)\d{2})\-(0[1-9]|1[0-2])\-(0[1-9]|1\d|2\d|3[01])$/;
// alert(date_regex.test("1991-12-02"));
- 1. Formato di espressione regolare Swift?
- 2. YYYYMMDD Formato data Espressione regolare per convalidare una data in C# .net
- 3. Espressione regolare C# per convalidare una data?
- 4. Formato data Java in formato data JavaScript
- 5. Formato ora di SCORM 2004 - Espressione regolare?
- 6. Espressione regolare Javascript per convalidare l'URL
- 7. Espressione regolare Javascript per valori rgb
- 8. Espressione regolare Javascript per la punteggiatura (internazionale)?
- 9. Javascript Espressione regolare Rimuovi spazi
- 10. Espressione regolare Javascript corrispondenza multipla
- 11. regolare limite di espressione formato stringa
- 12. espressione regolare insensibile alle maiuscole in javascript
- 13. Converti espressione regolare Javascript in sintassi Java
- 14. Espressione regolare condizionale Javascript if-then-else
- 15. Espressione regolare per importo in dollari in JavaScript
- 16. Espressione regolare in Bash Script
- 17. Java - espressione regolare per il formato numero get
- 18. autorevole espressione regolare per (s) FORMATO printf stringa
- 19. Funzione Javascript per convalidare l'ora 00:00 con espressione regolare
- 20. Javascript ottenere data in formato
- 21. Python: Converti stringa di formato in espressione regolare
- 22. espressione regolare per tempo
- 23. Espressione regolare per corrispondenza "|"
- 24. Espressione regolare per acronimi
- 25. Espressione regolare per ottenere una stringa tra parentesi in Javascript
- 26. Espressione regolare per la convalida degli URL (in JavaScript)
- 27. Espressione regolare Javascript - stringa su oggetto RegEx
- 28. Espressione regolare per trovare un'espressione regolare?
- 29. espressione regolare non funziona con javascript
- 30. javascript nuova espressione regolare da stringa
si può andare [qui] (http://stackoverflow.com/questions/5465375/javascript-date-regex-dd-mm-yyyy) per la domanda precedentemente fornita – cctan