mgm
Version:
My generic modules
49 lines (42 loc) • 1.49 kB
JavaScript
global.btoa = global.btoa || function(str) {
return new Buffer(str, 'binary').toString('base64');
};
global.atob = global.atob || function(b64Encoded) {
return new Buffer(b64Encoded, 'base64').toString('binary');
};
Array.prototype.clear = Array.prototype.clear || function() {
this.splice(0, this.length)
};
String.prototype.capitalize = function() {
return this.charAt(0).toUpperCase() + this.substring(1);
};
String.prototype.uncapitalize = function() {
return this.charAt(0).toLowerCase() + this.substring(1);
};
Function.prototype.newInstance = function() {
return new this();
}
global.getEmptyIfNull = function(data) {
var newData = data;
if (data == null) {
newData = [];
}
return newData;
};
global.format = function(data, mask) {
data = data.split('').reverse().join('').replace(/\W/g, '');
mask = mask.split('').reverse().join('');
var fields = getEmptyIfNull(mask.match(/\w+/g));
var separators = getEmptyIfNull(mask.match(/\W+/g));
var formatted = [];
for (var i = 0; data.length > 0 && fields.length > 0; i++) {
var field = fields.shift();
var getted = data.substr(0, field.length);
data = data.replace(getted, '');
formatted.push(getted);
if (getted.length == field.length && i < separators.length) {
formatted.push(separators[i]);
}
}
return formatted.join('').replace(/\W$/, '');
};