UNPKG

tongtong-utils

Version:

String类

205 lines (192 loc) 6.71 kB
'use strict'; var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; String.Resovle = function (context, startString, stopString, isTurn) { var subIndex = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; var res = null; var start = startString.split('*'); var stop = stopString.split('*'); try { if (!isTurn) { for (var i = 0; i < start.length; i++) { var s1 = GetGoodString(context, start[i], isTurn); var indexOf = context.indexOf(s1); if (indexOf > -1) { context = context.substring(indexOf + s1.length); } else { return false; } } var s2 = GetGoodString(context, stop[0], isTurn); res = context.substring(subIndex, context.indexOf(s2) - subIndex); return res; } else { for (var _i = stop.length - 1; _i >= 0; _i--) { var _s2 = GetGoodString(context, stop[_i], isTurn); var _indexOf = context.lastIndexOf(_s2); if (_indexOf > -1) { context = context.substring(0, _indexOf); } else { return false; } } var _s = GetGoodString(context, start[start.length - 1], isTurn); res = context.substring(context.lastIndexOf(_s) + _s.length + subIndex); return res; } } catch (Exception) { return false; } }; String.Resovles = function (context, startString, stopString, isTurn) { var subIndex = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0; var list = []; var start = startString.split('*'); var stop = stopString.split('*'); try { if (!isTurn) { while (context.indexOf(start[0]) > -1) { for (var i = 0; i < start.length; i++) { var indexOf = context.indexOf(start[i]); if (indexOf > -1) { context = context.substring(indexOf + start[i].length); } else { return list; } } if (context.indexOf(stop[0]) > -1) { list.push(context.substring(subIndex, context.indexOf(stop[0]) - subIndex)); } else { return list; } } } else { while (context.indexOf(stop[0]) > -1) { for (var _i2 = stop.length - 1; _i2 >= 0; _i2--) { var _indexOf2 = context.lastIndexOf(stop[_i2]); if (_indexOf2 > -1) { context = context.substring(0, _indexOf2); } else { return list; } } list.push(context.substring(context.lastIndexOf(start[start.length - 1]) + start[start.length - 1].length + subIndex)); } } return list; } catch (Exception) { return list; } }; String.test = function (string, key) { var keys = key.split('*'); if (string.indexOf(keys[0]) !== 0) { return false; } if (!string.endsWith(keys[keys.length - 1])) { return false; } return String.Resovle(string, key, "") === false ? false : true; }; String.testSome = function (string, keys) { var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = keys[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var key = _step.value; if (String.test(string, key)) { return true; } } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator.return) { _iterator.return(); } } finally { if (_didIteratorError) { throw _iteratorError; } } } return false; }; String.testEvery = function (string, keys) { var _iteratorNormalCompletion2 = true; var _didIteratorError2 = false; var _iteratorError2 = undefined; try { for (var _iterator2 = keys[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { var key = _step2.value; if (!String.test(string, key)) { return false; } } } catch (err) { _didIteratorError2 = true; _iteratorError2 = err; } finally { try { if (!_iteratorNormalCompletion2 && _iterator2.return) { _iterator2.return(); } } finally { if (_didIteratorError2) { throw _iteratorError2; } } } return true; }; function GetGoodString(context, substring, turn) { if (!context) { return substring; } var arr = substring.split('|'); var index = turn ? -1 : context.length; var ret = substring; for (var i in arr) { var str = arr[i]; if (!str) { continue; } if (!turn) { var temp = context.indexOf(str); if (temp > -1 && temp < index) { index = temp; ret = str; } } else { var _temp = context.lastIndexOf(str); if (_temp > -1 && _temp > index) { index = _temp; ret = str; } } } return ret; } String.replaceAll = function (string, oldValue, newValue) { if (typeof string === "string") { return string.split(oldValue).join(newValue); } return string; }; String.replaceAlls = function (string, oldValues, newValues) { for (var i = 0; i < oldValues.length; i++) { string = String.replaceAll(string, oldValues[i], newValues[i]); } return string; }; String.toString = function (obj) { if (obj instanceof Array || obj instanceof RegExp) { return obj.toString(); } if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === "object") { return JSON.stringify(obj); } return obj; };