Passed
Push — master ( 80bfec...f24dbe )
by Night
01:56
created

stringFuncs.firstXChars   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 3
nc 1
nop 1
dl 0
loc 4
rs 10
c 0
b 0
f 0
1
/** global: UB */
2
3
UB.charCodes = {
4
	NewlineR: 13,// hex 0x0D
5
	NewlineN: 10,// hex 0x0A
6
	
7
	Tab: 9,Space: 32,Exclamation: 33,DoubleQuote: 34,
8
	Hash: 35,Dollar: 36,Percent: 37,Ampersand: 38,SingleQuote: 39,
9
	CircleBracketOpen: 40,CircleBracketClose: 41,
10
	
11
	Multiply: 42,Plus: 43,Comma: 44,Minus: 45,Dash: 45,Dot: 46,Slash: 47,
12
13
	_0: 48,_1: 49,_2: 50,_3: 51,_4: 52,_5: 53,_6: 54,_7: 55,_8: 56,_9: 57,
14
15
	Colon: 58,Semicolon: 59,Lessthan: 60,Equal: 61,Morethan: 62,Question: 63,AtTheRate: 64,
16
17
	A: 65,B: 66,C: 67,D: 68,E: 69,F: 70,G: 71,H: 72,I: 73,J: 74,K: 75,
18
	L: 76,M: 77,N: 78,O: 79,P: 80,Q: 81,R: 82,S: 83,T: 84,U: 85,V: 86,
19
	W: 87,X: 88,Y: 89,Z: 90,
20
21
	BracketSquareOpen: 91,Backslash: 92,BracketSquareClose: 93,Xor: 94,Underscore: 95,Backtick: 96,
22
23
	a: 97,b: 98,c: 99,d: 100,e: 101,f: 102,g: 103,h: 104,i: 105,j: 106,
24
	k: 107,l: 108,m: 109,n: 110,o: 111,p: 112,q: 113,r: 114,s: 115,
25
	t: 116,u: 117,v: 118,w: 119,x: 120,y: 121,z: 122,
26
27
	BracketCurlyOpen: 123,Bar: 124,BracketCurlyClose: 125,Tilda: 126
28
};
29
30
var stringFuncs = {
31
	
32
	afterChar: function(char, inclusive = false){
33
		var str = this;
34
		var count = str.length;
35
		if (!inclusive) {
36
			char++;
37
		}
38
		if (char >= count) {
39
			return "";
40
		}
41
		return str.substr(char);
42
	},
43
	beforeChar: function(char, inclusive = false){
44
		var str = this;
45
		if (inclusive) {
46
			char--;
47
		}
48
		if (char <= 0) {
49
			return "";
50
		}
51
		return str.substr(0, char);
52
	},
53
	
54
	splitChars: function(){
55
		var text = this;
56
		
57
		// split to array of characters
58
		return text.split('');
59
		/*var chars:Array = [];
60
		for (var c = 0, cl = text.length;c<cl;c++){
61
			chars[c] = text.charAt(c);
62
		}
63
		return chars;*/
64
	},
65
	splitCharCodes: function(){
66
		var text = this;
67
		
68
		// split to array of char codes
69
		var chars = [];
70
		for (var c = 0, cl = text.length;c<cl;c++){
71
			chars[c] = text.charCodeAt(c);
72
		}
73
		return chars;
74
	},
75
	splitCharPairs: function(){
76
		var str = this;
77
		
78
		// return an Array of 2-character Strings
79
		
80
		// split words by space
81
		var words = str.split(" ");
82
		
83
		// calculate array of char pairs
84
		var allPairs = [];
85
		
86
		for (var w = 0;w<words.length;w++){
87
			
88
			// if not blank
89
			if(words[w]!= ''){
90
				
91
				// Find the pairs
92
				var word = words[w];
93
				var numPairs = word.length - 1;
94
				
95
				// add to list of pairs
96
				for (var i = 0;i<numPairs;i++){
97
					allPairs[i] = word.substr(i,2);
98
				}
99
			}
100
		}
101
		return allPairs;
102
	},
103
	
104
	
105
	removeEdgeChars: function(charsToRemove){
106
		var str = this;
107
		if ((str.length - (charsToRemove * 2)) <= 0) {
108
			return "";
109
		}
110
		return str.substring(charsToRemove, str.length - charsToRemove);
111
	},
112
	
113
	setLength: function(count, padOnRight = true, padding = " "){
114
		var text = this;
115
		if (text.length === count) {
116
			return text;
117
		}
118
		if (text.length >= count) {
119
			return text.substr(0, count);
120
		}
121
		
122
		return padOnRight ? text.padRight(padding, count) : text.padLeft(padding, count);
123
	},
124
	atMost: function(count, leftAlign = true){
125
		var text = this;
126
		if (text.length > count) {
127
			if (leftAlign){
128
				return text.substr(0, count);
129
			}
130
			return text.substr((text.length - count), count);
131
		}
132
		return text;
133
	},
134
	removeFirstXChars: function(charNum){
135
		var str = this;
136
		if (str.length <= charNum) {
137
			return "";
138
		}
139
		return str.substring(charNum, str.length);
140
	},
141
	removeLastXChars: function(charNum){
142
		var str = this;
143
		if (str.length <= charNum) {
144
			return "";
145
		}
146
		return str.substring(0, str.length - charNum);
147
	},
148
	firstXChars: function(numOfChars){
149
		var text = this;
150
		return text.range(0, numOfChars - 1);
151
	},
152
	lastXChars: function(numOfChars){
153
		var text = this;
154
		return text.range(text.length - numOfChars, text.length - 1);
155
	},
156
	setFirstXChars: function(numOfChars, newRange){
157
		var text = this;
158
		return text.setRange(0, numOfChars - 1, newRange);
159
	},
160
	setLastXChars: function(numOfChars, newRange){
161
		var text = this;
162
		return text.setRange(text.length - 1 - numOfChars, text.length - 1, newRange);
163
	},
164
	
165
	none:null
166
};
167
168
// register funcs
169
UB.registerFuncs(String.prototype, stringFuncs);