var _ = require('lodash'); var whitespace = new RegExp('\\s', 'g') var whitespaceHead = /^\s+/ var whitespaceTail = /\s+$/ var nonAlphanumerics = new RegExp('[^-_a-zA-Z0-9]', 'g') var consecutiveDashes = new RegExp("-+", 'g') var entities = new RegExp("[<>&]", 'g') var util = {} util.trim = function (s){ return (s || "").replace(whitespaceHead,"").replace(whitespaceTail,"") } util.slugify = function (s){ return (s || "").toLowerCase().replace(whitespace,"-").replace(nonAlphanumerics, '-').replace(consecutiveDashes,"-") } util.sanitize = function (s){ return (s || "").replace(entities, "") } util.capitalize = function (s) { return (s || "").split(" ").map(util.capitalizeWord).join(" "); } util.capitalizeWord = function (s) { return s.charAt(0).toUpperCase() + s.slice(1); } util.escapeRegExp: function (s) { return s.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") } util.cleanQuery = function (query) { var update = _.extend({}, query); delete update._id; delete update.created_at; delete update.modified_at; delete update.modified_by; delete update.created_by; return update; } util.ip2num = function(dot) { var d = dot.split('.'); return ((((((+d[0])*256)+(+d[1]))*256)+(+d[2]))*256)+(+d[3]); } util.num2ip = function(num) { var d = num % 256; for (var i = 3; i > 0; i--) { num = Math.floor(num/256); d = num % 256 + '.' + d; } return d; } module.exports = util