The aim of this plugin is to add methods JavaScript natives to include missing and helpful functionality.
var date = new Date()
, badDate = new Date('This is not a date')
date.isDate(); // returns true
badDate.isDate(); // returns false
{}.isDate(); // returns false
"March".isDate() // returns false
(55).isDate() // returns false
This method returns true
or false
depending on if the Date object is a valid date. No more !isNaN(dateObj.getTime())
var date = new Date();
date.getLabel(); // Returns in this format: "MTH DD YYYY"
This returns the date as a formatted date string.
var date1 = new Date( 2000, 0, 1), date2 = new Date( 2000, 0, 4);
date1.getDelta( date2 ); // Returns object with delta
// ============ OR ==============
var date1 = new Date( 2000, 0, 1), date2 = "January 4th, 2000";
date1.getDelta( date2 ); // Also accepts date strings
Returns an object with the caluclated delta difference. Currently only up to day (ie no months are ever returned).
###Array.prototype.merge()
var arr = [1, 2, 3];
arr.merge([4, 5, 6]; // Returns [1, 2, 3, 4, 5, 6]
This combines the two arrays together. This does alter the original array, as well as returns the new value of the array.
###Object.prototype.peel()
var obj = { name : { first : "Al", last : "Bundy" } };
obj.peel('name.last'); // returns "Bundy"
obj.peel('path.not.in.object'); // Returns 0
This allows you to reach into objects and get their values, if it exists. If it doesn't, will return 0. The advantage of this is you avoid a dreaded obj.name && obj.name.first
situation, and not have to worry about a malformed object blowing up your application.
###String.prototype.formatPhone()
var badlyFormattedPhone = "737-4844832 x58";
badlyFormattedPhone.formatPhone()
// returns "(737) 484-4832 x58"
This strips every non-number in the string, then formats occordingly. If there aren't enough numbers, will fill the missing numbers with an underscore "_". If the number is longer than a US phone number, it will consider the extra numbers an extension.
###String.prototype.trim()
var str = " No more spaces! ";
str.trim(); // Returns "No more spaces!"
This method returns the string without leading or ending spaces.
####A Small Note
According to some, you shouldn't be adding prototypes to native JavaScript. Here's an argument for that.