StringUtil.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348
  1. var t = require;
  2. var e = module;
  3. var i = exports;
  4. Object.defineProperty(i, "__esModule", {value: !0}), (i.StringUtil = void 0);
  5. var r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
  6. function l(t) {
  7. this.message = t;
  8. }
  9. (String.prototype.format = function () {
  10. const i = arguments;
  11. return (
  12. !!this &&
  13. this.replace(/\{(\d+)\}/g, function (t, e) {
  14. return void 0 !== i[e] ? i[e] : t;
  15. })
  16. );
  17. }),
  18. ((l.prototype = new Error()).name = "InvalidCharacterError"),
  19. (i.StringUtil = class {
  20. zipStr(t) {
  21. return this.btoa(pako.gzip(t, {to: "string"}));
  22. }
  23. zipStr1(t) {
  24. return pako.gzip(t);
  25. }
  26. unzip(t) {
  27. t = this.atob(t)
  28. .split("")
  29. .map(function (t) {
  30. return t.charCodeAt(0);
  31. });
  32. return pako.inflate(new Uint8Array(t), {to: "string"});
  33. }
  34. unzip1(t) {
  35. return pako.inflate(new Uint8Array(t), {to: "string"});
  36. }
  37. stringToHex(t) {
  38. for (var e = "", i = 0; i < t.length; i++) (e += t.charCodeAt(i).toString(16)), (e += ",");
  39. return e;
  40. }
  41. arrayBufferToHex(t) {
  42. for (var e = "", i = new Uint8Array(t), s = i.byteLength, o = 0; o < s; o++)
  43. (e += i[o].toString(16)), (e += ",");
  44. return e;
  45. }
  46. arrayBufferToString(t) {
  47. return String.fromCharCode.apply(null, new Uint8Array(t));
  48. }
  49. translateToInt(t) {
  50. return t.map(function (t) {
  51. return +t;
  52. });
  53. }
  54. stringToArrayBuffer(t) {
  55. t = this.stringToBytes(t);
  56. return new Uint8Array(t).buffer;
  57. }
  58. arrayBufferTableConnect(t) {
  59. for (var e = t.length, i = 0, s = 0; s < e; s++) i += t[s].byteLength;
  60. for (var o = new ArrayBuffer(i), a = new Uint8Array(o), i = 0, s = 0; s < e; s++)
  61. for (var n = t[s].byteLength, r = new Uint8Array(t[s]), l = 0; l < n; l++) (a[i] = r[l]), i++;
  62. return o;
  63. }
  64. arrayBufferConnect(t, e) {
  65. for (
  66. var i = new Uint8Array(t),
  67. s = new Uint8Array(e),
  68. o = i.byteLength,
  69. a = s.byteLength,
  70. e = new ArrayBuffer(o + a),
  71. n = new Uint8Array(e),
  72. r = 0;
  73. r < o;
  74. r++
  75. )
  76. n[r] = i[r];
  77. for (r = 0; r < a; r++) n[o + r] = s[r];
  78. return e;
  79. }
  80. stringToBytes(t) {
  81. for (var e, i, s = [], o = 0; o < t.length; o++) {
  82. for (e = t.charCodeAt(o), i = []; i.push(255 & e), (e >>= 8); );
  83. s = s.concat(i.reverse());
  84. }
  85. return s;
  86. }
  87. bytesToString(t) {
  88. for (var e = t.byteLength, i = "", s = 0; s < e; s++) i += String.fromCharCode(255 & t[s]);
  89. return i;
  90. }
  91. stringToInt(t) {
  92. for (var e = 0, i = Math.min(4, t.length), s = 0; s < i; s++) e += t.charCodeAt(s) << (8 * (3 - s));
  93. return e;
  94. }
  95. intToString(t) {
  96. var e = "";
  97. return (
  98. (e += String.fromCharCode((t >> 24) & 255)),
  99. (e += String.fromCharCode((t >> 16) & 255)),
  100. (e += String.fromCharCode((t >> 8) & 255)) + String.fromCharCode(255 & t)
  101. );
  102. }
  103. stringToShort(t) {
  104. for (var e = 0, i = Math.min(2, t.length), s = 0; s < i; s++) e += t.charCodeAt(s) << (8 * (1 - s));
  105. return e;
  106. }
  107. shortToString(t) {
  108. var e = "";
  109. return (e += String.fromCharCode((t >> 8) & 255)) + String.fromCharCode(255 & t);
  110. }
  111. stringToByte(t) {
  112. for (var e = 0, i = Math.min(1, t.length), s = 0; s < i; s++) e += t.charCodeAt(s);
  113. return e;
  114. }
  115. byteToString(t) {
  116. return String.fromCharCode(255 & t);
  117. }
  118. hex_string_to_buffer(t) {
  119. var e = [];
  120. for (2 <= t.length && "0x" == t.substr(0, 2).toLowerCase() && (t = t.substr(2)); 0 < t.length; )
  121. e.unshift(parseInt(t.slice(-2), 16)), (t = t.slice(0, -2));
  122. return new Uint8Array(e).buffer;
  123. }
  124. buffer_hex_string(t) {
  125. for (var e = new Uint8Array(t), i = [], s = 0; s < e.length; s++) {
  126. var o = e[s];
  127. i.push((o < 16 ? "0" : "") + o.toString(16));
  128. }
  129. return i.join("");
  130. }
  131. buffPositive(t) {
  132. for (var e = new Uint8Array(t), i = e.length, s = 0; s < i; s++) {
  133. var o = Math.pow(2, 8) - 1 - e[s];
  134. e[s] = s == i - 1 ? 1 + o : o;
  135. }
  136. return e.buffer;
  137. }
  138. buffer2int(t) {
  139. var e = new Uint8Array(t),
  140. i = 1,
  141. s = [];
  142. -1 == (i = 0 < e.length ? (e[0].toString(2).length < 8 ? 1 : -1) : i) && (t = this.buffPositive(t));
  143. for (var o = 0; o < e.length; o++) {
  144. var a = e[o];
  145. s.push((a < 16 ? "0" : "") + a.toString(16));
  146. }
  147. t = s.join("");
  148. return i * parseInt(t, 16);
  149. }
  150. buffer2uint(t) {
  151. for (var e = new Uint8Array(t), i = [], s = 0; s < e.length; s++) {
  152. var o = e[s];
  153. i.push((o < 16 ? "0" : "") + o.toString(16));
  154. }
  155. t = i.join("");
  156. return parseInt(t, 16);
  157. }
  158. encodeUTF8(t) {
  159. for (var e, i = "", s = 0, o = t.length; s < o; s++)
  160. (e = t.charCodeAt(s).toString(16)), (i += "\\u" + new Array(5 - e.length).join("0") + e);
  161. return i;
  162. }
  163. decodeUTF8(t) {
  164. return t.replace(/(\\u)(\w{4}|\w{2})/gi, function (t, e, i) {
  165. return String.fromCharCode(parseInt(i, 16));
  166. });
  167. }
  168. utf16ToUtf8(t) {
  169. if (t) {
  170. for (var e, i = [], s = t.length, o = 0; o < s; o++)
  171. 0 < (e = t.charCodeAt(o)) && e <= 127
  172. ? i.push(t.charAt(o))
  173. : 128 <= e && e <= 2047
  174. ? i.push(String.fromCharCode(192 | ((e >> 6) & 31)), String.fromCharCode(128 | (63 & e)))
  175. : 2048 <= e &&
  176. e <= 65535 &&
  177. i.push(
  178. String.fromCharCode(224 | ((e >> 12) & 15)),
  179. String.fromCharCode(128 | ((e >> 6) & 63)),
  180. String.fromCharCode(128 | (63 & e))
  181. );
  182. return i.join("");
  183. }
  184. }
  185. utf8ToUtf16(t) {
  186. if (t) {
  187. for (var e, i, s = [], o = t.length, a = 0; a < o; a++)
  188. (e = []).push(t.charCodeAt(a)),
  189. 0 == ((e[0] >> 7) & 255)
  190. ? s.push(t.charAt(a))
  191. : 6 == ((e[0] >> 5) & 255)
  192. ? (e.push(t.charCodeAt(++a)),
  193. (i = []).push(31 & e[0]),
  194. i.push(63 & e[1]),
  195. s.push(String.fromCharCode((i[0] << 6) | i[1])))
  196. : 14 == ((e[0] >> 4) & 255) &&
  197. (e.push(t.charCodeAt(++a)),
  198. e.push(t.charCodeAt(++a)),
  199. (i = []).push((e[0] << 4) | ((e[1] >> 2) & 15)),
  200. i.push(((3 & e[1]) << 6) | (63 & e[2])),
  201. s.push(String.fromCharCode((i[0] << 8) | i[1])));
  202. return s.join("");
  203. }
  204. }
  205. arrayBufferToUtf16(t) {
  206. return this.utf8ToUtf16(this.arrayBufferToString(t));
  207. }
  208. btoa(t) {
  209. for (
  210. var e, i, s = String(t), o = 0, a = r, n = "";
  211. s.charAt(0 | o) || ((a = "="), o % 1);
  212. n += a.charAt(63 & (e >> (8 - (o % 1) * 8)))
  213. ) {
  214. if (255 < (i = s.charCodeAt((o += 0.75))))
  215. throw new l(
  216. "'btoa' failed: The string to be encoded contains characters outside of the Latin1 range."
  217. );
  218. e = (e << 8) | i;
  219. }
  220. return n;
  221. }
  222. base64ToUint8(t) {
  223. for (var e = atob(t), i = e.length, s = new Uint8Array(i); i--; ) s[i] = e.charCodeAt(i);
  224. return s;
  225. }
  226. uint8ToBase64(t) {
  227. for (var e = "", i = 0, s = t.length; i < s; ++i) e += String.fromCharCode(t[i]);
  228. return btoa(e);
  229. }
  230. atob(t) {
  231. var e = String(t).replace(/[=]+$/, "");
  232. if (e.length % 4 == 1) throw new l("'atob' failed: The string to be decoded is not correctly encoded.");
  233. for (
  234. var i, s, o = 0, a = 0, n = "";
  235. (s = e.charAt(a++));
  236. ~s && ((i = o % 4 ? 64 * i + s : s), o++ % 4) && (n += String.fromCharCode(255 & (i >> ((-2 * o) & 6))))
  237. )
  238. s = r.indexOf(s);
  239. return n;
  240. }
  241. arrayBufferToBytes(t) {
  242. return this.stringToBytes(this.arrayBufferToString(t));
  243. }
  244. strRepeat(t, e) {
  245. return new Array(e + 1).join(t);
  246. }
  247. isBase64(t) {
  248. return /^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/.test(t);
  249. }
  250. GetLength(t) {
  251. if (!t) return NaN;
  252. for (var e, i = 0, s = t.length, o = 0; o < s; o++) i += 0 < (e = t.charCodeAt(o)) && e <= 128 ? 1 : 2;
  253. return i;
  254. }
  255. CutStr(t, e, i = "...") {
  256. if (!t) return null;
  257. var s = 0;
  258. if (this.GetLength(t) <= e) return t;
  259. for (var o = 0; o < t.length; o++) {
  260. var a = t.charCodeAt(o);
  261. if ((s += 0 < a && a <= 128 ? 1 : 2) >= e) return t.substr(0, o + 1) + i;
  262. }
  263. return t;
  264. }
  265. checkIdcard(t) {
  266. var e = new Array(
  267. "验证通过!",
  268. "身份证号码位数不对!",
  269. "身份证号码出生日期超出范围或含有非法字符!",
  270. "身份证号码校验错误!",
  271. "身份证地区非法!"
  272. ),
  273. i = (new Array(), t.split(""));
  274. if (
  275. null ==
  276. {
  277. 11: "北京",
  278. 12: "天津",
  279. 13: "河北",
  280. 14: "山西",
  281. 15: "内蒙古",
  282. 21: "辽宁",
  283. 22: "吉林",
  284. 23: "黑龙江",
  285. 31: "上海",
  286. 32: "江苏",
  287. 33: "浙江",
  288. 34: "安徽",
  289. 35: "福建",
  290. 36: "江西",
  291. 37: "山东",
  292. 41: "河南",
  293. 42: "湖北",
  294. 43: "湖南",
  295. 44: "广东",
  296. 45: "广西",
  297. 46: "海南",
  298. 50: "重庆",
  299. 51: "四川",
  300. 52: "贵州",
  301. 53: "云南",
  302. 54: "西藏",
  303. 61: "陕西",
  304. 62: "甘肃",
  305. 63: "青海",
  306. 64: "宁夏",
  307. 65: "新疆",
  308. 71: "台湾",
  309. 81: "香港",
  310. 82: "澳门",
  311. 91: "国外"
  312. }[parseInt(t.substr(0, 2))]
  313. )
  314. return e[4];
  315. switch (t.length) {
  316. case 15:
  317. var s =
  318. (parseInt(t.substr(6, 2)) + 1900) % 4 == 0 ||
  319. ((parseInt(t.substr(6, 2)) + 1900) % 100 == 0 && (parseInt(t.substr(6, 2)) + 1900) % 4 == 0)
  320. ? /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}$/
  321. : /^[1-9][0-9]{5}[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}$/;
  322. return s.test(t) ? e[0] : e[2];
  323. case 18:
  324. return (s =
  325. parseInt(t.substr(6, 4)) % 4 == 0 ||
  326. (parseInt(t.substr(6, 4)) % 100 == 0 && parseInt(t.substr(6, 4)) % 4 == 0)
  327. ? /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|[1-2][0-9]))[0-9]{3}[0-9Xx]$/
  328. : /^[1-9][0-9]{5}19[0-9]{2}((01|03|05|07|08|10|12)(0[1-9]|[1-2][0-9]|3[0-1])|(04|06|09|11)(0[1-9]|[1-2][0-9]|30)|02(0[1-9]|1[0-9]|2[0-8]))[0-9]{3}[0-9Xx]$/).test(
  329. t
  330. )
  331. ? ((s =
  332. 7 * (parseInt(i[0]) + parseInt(i[10])) +
  333. 9 * (parseInt(i[1]) + parseInt(i[11])) +
  334. 10 * (parseInt(i[2]) + parseInt(i[12])) +
  335. 5 * (parseInt(i[3]) + parseInt(i[13])) +
  336. 8 * (parseInt(i[4]) + parseInt(i[14])) +
  337. 4 * (parseInt(i[5]) + parseInt(i[15])) +
  338. 2 * (parseInt(i[6]) + parseInt(i[16])) +
  339. +parseInt(i[7]) +
  340. 6 * parseInt(i[8]) +
  341. 3 * parseInt(i[9])),
  342. "10X98765432".substr(s % 11, 1) == i[17] ? e[0] : e[3])
  343. : e[2];
  344. default:
  345. return e[1];
  346. }
  347. }
  348. });