• 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
  • to_adjective.js

  • ¶

    turns ‘quickly’ into ‘quick’

    'use strict';
    const to_adjective = function(str) {
      const irregulars = {
        'idly': 'idle',
        'sporadically': 'sporadic',
        'basically': 'basic',
        'grammatically': 'grammatical',
        'alphabetically': 'alphabetical',
        'economically': 'economical',
        'conically': 'conical',
        'politically': 'political',
        'vertically': 'vertical',
        'practically': 'practical',
        'theoretically': 'theoretical',
        'critically': 'critical',
        'fantastically': 'fantastic',
        'mystically': 'mystical',
        'pornographically': 'pornographic',
        'fully': 'full',
        'jolly': 'jolly',
        'wholly': 'whole'
      };
      const transforms = [{
        'reg': /bly$/i,
        'repl': 'ble'
      }, {
        'reg': /gically$/i,
        'repl': 'gical'
      }, {
        'reg': /([rsdh])ically$/i,
        'repl': '$1ical'
      }, {
        'reg': /ically$/i,
        'repl': 'ic'
      }, {
        'reg': /uly$/i,
        'repl': 'ue'
      }, {
        'reg': /ily$/i,
        'repl': 'y'
      }, {
        'reg': /(.{3})ly$/i,
        'repl': '$1'
      }];
      if (irregulars.hasOwnProperty(str)) {
        return irregulars[str];
      }
      for (let i = 0; i < transforms.length; i++) {
        if (str.match(transforms[i].reg)) {
          return str.replace(transforms[i].reg, transforms[i].repl);
        }
      }
      return str;
    };
  • ¶

    console.log(to_adjective(‘quickly’) === ‘quick’) console.log(to_adjective(‘marvelously’) === ‘marvelous’)

    module.exports = to_adjective;