|
|
@@ -1,13 +1,47 @@
|
|
|
1
|
+/**
|
|
|
2
|
+/**
|
|
|
3
|
+ * @const
|
|
|
4
|
+ */
|
|
|
5
|
+var ALPHANUM = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
|
|
1
|
6
|
|
|
2
|
7
|
/**
|
|
3
|
|
- * Generates random hex number within the range [min, max]
|
|
4
|
|
- * @param max the maximum value for the generated number
|
|
|
8
|
+ * Hexadecimal digits.
|
|
|
9
|
+ * @const
|
|
|
10
|
+ */
|
|
|
11
|
+var HEX_DIGITS = '0123456789abcdef';
|
|
|
12
|
+
|
|
|
13
|
+/**
|
|
|
14
|
+ * Generates random int within the range [min, max]
|
|
5
|
15
|
* @param min the minimum value for the generated number
|
|
6
|
|
- * @returns random hex number
|
|
|
16
|
+ * @param max the maximum value for the generated number
|
|
|
17
|
+ * @returns random int number
|
|
|
18
|
+ */
|
|
|
19
|
+function randomInt(min, max) {
|
|
|
20
|
+ return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
|
21
|
+}
|
|
|
22
|
+
|
|
|
23
|
+/**
|
|
|
24
|
+ * Get random element from array or string.
|
|
|
25
|
+ * @param {Array|string} arr source
|
|
|
26
|
+ * @returns array element or string character
|
|
7
|
27
|
*/
|
|
8
|
|
-function rangeRandomHex(min, max)
|
|
9
|
|
-{
|
|
10
|
|
- return Math.floor(Math.random() * (max - min) + min).toString(16);
|
|
|
28
|
+function randomElement(arr) {
|
|
|
29
|
+ return arr[randomInt(0, arr.length - 1)];
|
|
|
30
|
+}
|
|
|
31
|
+
|
|
|
32
|
+/**
|
|
|
33
|
+ * Generate random alphanumeric string.
|
|
|
34
|
+ * @param {number} length expected string length
|
|
|
35
|
+ * @returns {string} random string of specified length
|
|
|
36
|
+ */
|
|
|
37
|
+function randomAlphanumStr(length) {
|
|
|
38
|
+ var result = '';
|
|
|
39
|
+
|
|
|
40
|
+ for (var i = 0; i < length; i += 1) {
|
|
|
41
|
+ result += randomElement(ALPHANUM);
|
|
|
42
|
+ }
|
|
|
43
|
+
|
|
|
44
|
+ return result;
|
|
11
|
45
|
}
|
|
12
|
46
|
|
|
13
|
47
|
/**
|
|
|
@@ -15,22 +49,22 @@ function rangeRandomHex(min, max)
|
|
15
|
49
|
*/
|
|
16
|
50
|
var RandomUtil = {
|
|
17
|
51
|
/**
|
|
18
|
|
- * Generates hex number with length 4
|
|
19
|
|
- */
|
|
20
|
|
- random4digitsHex: function () {
|
|
21
|
|
- return rangeRandomHex(0x1000, 0xFFFF);
|
|
22
|
|
- },
|
|
23
|
|
- /**
|
|
24
|
|
- * Generates hex number with length 8
|
|
|
52
|
+ * Returns a random hex digit.
|
|
|
53
|
+ * @returns {*}
|
|
25
|
54
|
*/
|
|
26
|
|
- random8digitsHex: function () {
|
|
27
|
|
- return rangeRandomHex(0x10000000, 0xFFFFFFFF);
|
|
|
55
|
+ randomHexDigit: function() {
|
|
|
56
|
+ return randomElement(HEX_DIGITS);
|
|
28
|
57
|
},
|
|
29
|
58
|
/**
|
|
30
|
|
- * Generates hex number with length 12
|
|
|
59
|
+ * Returns a random string of hex digits with length 'len'.
|
|
|
60
|
+ * @param len the length.
|
|
31
|
61
|
*/
|
|
32
|
|
- random12digitsHex: function () {
|
|
33
|
|
- return rangeRandomHex(0x100000000000, 0xFFFFFFFFFFFF);
|
|
|
62
|
+ randomHexString: function (len) {
|
|
|
63
|
+ var ret = '';
|
|
|
64
|
+ while (len--) {
|
|
|
65
|
+ ret += this.randomHexDigit();
|
|
|
66
|
+ }
|
|
|
67
|
+ return ret;
|
|
34
|
68
|
}
|
|
35
|
69
|
};
|
|
36
|
70
|
|