Humanize Plus
A simple utility library for making the web more humane.
Getting Started
Humanize Plus is available via node package manager.
npm install humanize-plus
Or download the minified version or the full version.
In your web page:
In your node package.json:
"dependencies": "humanize-plus": "^1.7.0"
For recent changes, see the changelog.
API Methods
Numbers
formatNumber
Formats a number to a human-readable string. Localize by overriding the precision, thousand and decimal arguments.
Humanize// "123,456,789.00"
intComma
Converts an integer to a string containing commas every three digits.
Humanize// "123,456,789"
intcomma - DEPRECATED - This method will not be present in the next major version.
Alias for intComma
intword - DEPRECATED - This method will not be present in the next major version.
Converts a large integer to a friendly text representation. This method is now a thin wrapper around compactInteger
Humanize.intword(num, ch, de) === Humanize.compactInteger(num, de)
Humanize// "123.5M" Humanize// "123.457M" Humanize// "10"
compactInteger
Converts an integer into its most compact representation. Decimal precision is ignored for all integers, n, such that abs(n) < 1000.
Humanize// "123.5M" // Switch to scientific notation for trillons, because no one knows those abbreviations.Humanize// "-7.8322x10^18" Humanize// "-100"
boundedNumber
Bounds a value from above. Modified values have customizable ending strings ('+' by default)
Humanize// "100+" Humanize// "50"
truncatenumber - DEPRECATED - This method will not be present in the next major version.
Alias for boundedNumber
ordinal
Converts an integer to its ordinal as a string.
Humanize// "22nd"
times
Interprets numbers as occurences. Also accepts an optional array/map of overrides.
for i=0; i<5; i++ Humanize; // Bonus! if i === 1 Humanize; // never// once// 1.1 times// twice// 3 times// too many times
pace
Matches a pace (value and interval) with a logical time frame. Very useful for slow paces.
second = 1000week = 6048e8decade = 3156e11 Humanize// Approximately 2 heartbeats per second Humanize// Approximately 4 times per week Humanize// Less than 1 life crisis per week
fileSize
Formats the value like a 'human-readable' file size (i.e. '13 KB', '4.1 MB', '102 bytes', etc).
Humanize// "20 Kb" Humanize// "1.95 Mb" Humanize// "931.32 Gb"
filesize - DEPRECATED - This method will not be present in the next major version.
Alias for fileSize
pluralize
Returns the plural version of a given word if the value is not 1. The default suffix is 's'.
Humanize// "duck" Humanize// "ducks" Humanize// "duckies"
Strings
truncate
Truncates a string if it is longer than the specified number of characters. Truncated strings will end with a translatable ellipsis sequence ("…").
Humanize// "long text is good for you" Humanize// "long text is goo..." Humanize// "long text is... etc"
truncateWords
Truncates a string after a certain number of words.
Humanize// "long text is good for ..."
truncatewords - DEPRECATED - This method will not be present in the next major version.
Alias for truncateWords
nl2br and br2nl
Flexible conversion of <br/>
tags to newlines and vice versa.
// Use your imagination
capitalize
Capitalizes the first letter in a string, optionally downcasing the tail.
Humanize// "Some boring string" Humanize// "WHoOaA!" Humanize// "Whooaa!"
capitalizeAll
Captializes the first letter of every word in a string.
Humanize// "Some Boring String"
titleCase
Intelligently capitalizes eligible words in a string and normalizes internal whitespace.
Humanize// "Some of a Boring String" Humanize// "Cool the iTunes Cake, O'Malley!"
titlecase - DEPRECATED - This method will not be present in the next major version.
Alias for titleCase
Arrays
oxford
Converts a list of items to a human readable string with an optional limit.
items = 'apple' 'orange' 'banana' 'pear' 'pineapple' Humanize// "apple, orange, banana, pear, and pineapple" Humanize// "apple, orange, banana, and 2 others" // Pluralizes properly too!Humanize// "apple, orange, banana, pear, and 1 other" Humanize// "apple, orange, banana, and some other fruits"
frequency
Describes how many times an item appears in a list
aznPics = 'http://24.media.tumblr.com/77082543cb69af56ede38a0cdb2511d0/tumblr_mh96olWPLv1r8k4ywo1_1280.jpg' 'http://25.media.tumblr.com/3e2d318be34d5ef8f86a612cd1d795ff/tumblr_mhbhb96t3z1r8k4ywo1_1280.jpg' 'http://24.media.tumblr.com/8c5a052e33c27c784514e1b124b383a1/tumblr_mhexaqrk0w1r8k4ywo1_1280.jpg'bigfootPics = "Asians " + Humanize// "Asians took pictures of food 3 times" "Bigfoot " + Humanize// "Bigfoot never took pictures of food"
Utility methods
toFixed
Fixes binary rounding issues (eg. (0.615).toFixed(2) === "0.61").
Humanize// "0.62"
normalizePrecision
Ensures precision value is a positive integer.
Humanize// 232
Important notes
Please don't edit files in the dist
subdirectory as they are generated through compilation. You'll find source code in the src
subdirectory!
Compiling
npm run install && npm run build
And that's it!
The project will compile the CoffeeScript files into the dist
subdirectory.
Testing
npm run test
License
Copyright (c) 2013-2016 HubSpotDev Licensed under the MIT license.