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); |