summaryrefslogtreecommitdiff
path: root/server/lib/util.js
blob: 87e2d54936587f1987718e6ab2fd8d59a8f5bfc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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