• Jump To … +
    abbreviations.js adjectives.js convertables.js dates.js demonyms.js firstnames.js honourifics.js irregular_nouns.js irregular_verbs.js misc.js multiples.js numbers.js organisations.js phrasal_verbs.js places.js uncountables.js verbs.js fns.js index.js lexicon.js negate.js passive_voice.js contractions.js fancy_lumping.js grammar_rules.js parts_of_speech.js phrasal_verbs.js tagger.js word_rules.js question.js sentence.js statement.js tense.js adjective.js to_adverb.js to_comparative.js to_noun.js to_superlative.js adverb.js to_adjective.js is_acronym.js article.js date.js date_rules.js is_date.js parse_date.js is_plural.js is_uncountable.js noun.js is_organisation.js organisation.js gender.js is_person.js parse_name.js person.js is_place.js place.js pluralize.js pronoun.js singularize.js is_value.js numbers.js to_number.js units.js value.js term.js conjugate.js from_infinitive.js predict_form.js suffix_rules.js to_actor.js to_infinitive.js negate.js verb.js sentence_parser.js text.js
  • date_rules.js

  • ¶
    'use strict';
    
    let months = require('../../../data/dates').months.concat(['march', 'may']); //(march and may are ambiguous grammatically)
    const month = '(' + months.join('|') + ')';
    const day = '([0-9]{1,2})';
    const year = '\'?([12][0-9]{3})';
    
    const rules = [
      {
        reg: `${month} ${day} ${year}`, //'March 1st 1987'
        order: ['month', 'day', 'year']
      },
      {
        reg: `${day} of ${month} ${year}`, //'3rd of March 1969',
        order: ['day', 'month', 'year']
      },
  • ¶

    incomplete versions

      {
        reg: `${day} of ${month}`, //'3rd of March',
        order: ['day', 'month']
      },
      {
        reg: `${month} ${year}`, //'March 1969',
        order: ['month', 'year']
      },
      {
        reg: `${month} ${day}`, //'March 18th',
        order: ['month', 'day']
      },
      {
        reg: `${day} ${month}`, //'18th of March',
        order: ['month', 'day']
      },
      {
        reg: `${month}`, //'january'
        order: ['month']
      },
      {
        reg: `${year}`, //'1998'
        order: ['year']
      }
    ].map(function (o) {
      o.reg = new RegExp('\\b' + o.reg + '\\b', '');
      return o;
    });
    module.exports = rules;