Modul:Citation/CS1/Date validation/sandkasse: Forskelle mellem versioner

Content deleted Content added
Fjerner version 10768936 af MGA73 (diskussion) - det virkede ikke
Tag: Omgjort
Tilføjer flere varianter af datoer med punktummer. Bemærk at der skal skrives både under patterns{} og check_date()
Linje 439:
-- day-range-initial: day–day month year; days are separated by endash
['d-dMy'] = {'^([1-9]%d?)[%-–]([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'd2', 'm', 'a', 'y'},
-- day-range-initial: day–day month year; days are separated by endash -- MGA73: Forsøger at fange at vi bruger punktum i Danmark (sammen med nedenstående)
['d.-d.My'] = {'^([1-9]%d?)%.[%-–]([1-9]%d?)%. +(%D-) +((%d%d%d%d)%a?)$', 'd', 'd2', 'm', 'a', 'y'}, -- MGA73: Forsøger at fange at vi bruger punktum i Danmark (sammen med ovenstående)
-- day initial month-day-range: day month - day month year; uses spaced endash
['dM-dMy'] = {'^([1-9]%d?) +(%D-) +[%-–] +([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'm', 'd2', 'm2', 'a', 'y'},
-- day initial month-day-range: day month - day month year; uses spaced endash -- MGA73: Forsøger at fange at vi bruger punktum i Danmark (sammen med nedenstående)
['d.M-d.My'] = {'^([1-9]%d?)%. +(%D-) +[%-–] +([1-9]%d?)%. +(%D-) +((%d%d%d%d)%a?)$', 'd', 'm', 'd2', 'm2', 'a', 'y'}, -- MGA73: Forsøger at fange at vi bruger punktum i Danmark (sammen med ovenstående)
-- month initial month-day-range: month day – month day, year; uses spaced endash
['Md-Mdy'] = {'^(%D-) +([1-9]%d?) +[%-–] +(%D-) +([1-9]%d?), +((%d%d%d%d)%a?)$','m', 'd', 'm2', 'd2', 'a', 'y'},
-- day initial month-day-year-range: day month year - day month year; uses spaced endash
['dMy-dMy'] = {'^([1-9]%d?) +(%D-) +(%d%d%d%d) +[%-–] +([1-9]%d?) +(%D-) +((%d%d%d%d)%a?)$', 'd', 'm', 'y', 'd2', 'm2', 'a', 'y2'},
-- day initial month-day-year-range: day month year - day month year; uses spaced endash -- MGA73: Forsøger at fange at vi bruger punktum i Danmark (sammen med nedenstående)
['d.My-d.My'] = {'^([1-9]%d?)%. +(%D-) +(%d%d%d%d) +[%-–] +([1-9]%d?)%. +(%D-) +((%d%d%d%d)%a?)$', 'd', 'm', 'y', 'd2', 'm2', 'a', 'y2'}, -- MGA73: Forsøger at fange at vi bruger punktum i Danmark (sammen med ovenstående)
-- month initial month-day-year-range: month day, year – month day, year; uses spaced endash
['Mdy-Mdy'] = {'^(%D-) +([1-9]%d?), +(%d%d%d%d) +[%-–] +(%D-) +([1-9]%d?), +((%d%d%d%d)%a?)$', 'm', 'd', 'y', 'm2', 'd2', 'a', 'y2'},
Line 545 ⟶ 551:
month2 = month; -- for metadata
year2 = year;
 
elseif mw.ustring.match(date_string, patterns['d.-d.My'][1]) then -- day-range-initial: day–day month year; days are separated by endash -- MGA73: Forsøger at fange at vi bruger punktum i Danmark. (7 linjer her og nedenfor)
day, day2, month, anchor_year, year = mw.ustring.match(date_string, patterns['d.-d.My'][1]);
if tonumber(day) >= tonumber(day2) then return false; end -- date range order is left to right: earlier to later; dates may not be the same;
month = get_month_number (month);
if 0 == month then return false; end -- return false if month text isn't one of the twelve months
month2 = month; -- for metadata
year2 = year; -- MGA73: Forsøger at fange at vi bruger punktum i Danmark. (7 linjer her og ovenfor)
 
 
elseif mw.ustring.match(date_string, patterns['dM-dMy'][1]) then -- day initial month-day-range: day month - day month year; uses spaced endash
Line 552 ⟶ 567:
month2 = get_month_number (month2);
year2 = year;
 
elseif mw.ustring.match(date_string, patterns['d.M-d.My'][1]) then -- day initial month-day-range: day month - day month year; uses spaced endash -- MGA73: Forsøger at fange at vi bruger punktum i Danmark. (6 linjer her og nedenfor)
day, month, day2, month2, anchor_year, year = mw.ustring.match(date_string, patterns['d.M-d.My'][1]);
if (not is_valid_month_season_range(month, month2)) or not is_valid_year(year) then return false; end -- date range order is left to right: earlier to later;
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
year2 = year; -- MGA73: Forsøger at fange at vi bruger punktum i Danmark. (6 linjer her og ovenfor)
 
elseif mw.ustring.match(date_string, patterns['Md-Mdy'][1]) then -- month initial month-day-range: month day – month day, year; uses spaced endash
Line 567 ⟶ 589:
month2 = get_month_number (month2);
if 0 == month or 0 == month2 then return false; end -- both must be valid
 
elseif mw.ustring.match(date_string, patterns['d.My-d.My'][1]) then -- day initial month-day-year-range: day month year - day month year; uses spaced endash -- MGA73: Forsøger at fange at vi bruger punktum i Danmark. (7 linjer her og nedenfor)
day, month, year, day2, month2, anchor_year, year2 = mw.ustring.match(date_string, patterns['d.My-d.My'][1]);
if tonumber(year2) <= tonumber(year) then return false; end -- must be sequential years, left to right, earlier to later
if not is_valid_year(year2) or not is_valid_month_range_style(month, month2) then return false; end -- year2 no more than one year in the future; months same style
month = get_month_number (month); -- for metadata
month2 = get_month_number (month2);
if 0 == month or 0 == month2 then return false; end -- both must be valid -- MGA73: Forsøger at fange at vi bruger punktum i Danmark. (7 linjer her og ovenfor)
 
elseif mw.ustring.match(date_string, patterns['Mdy-Mdy'][1]) then -- month initial month-day-year-range: month day, year – month day, year; uses spaced endash