tongtong-utils
Version:
String类
205 lines (192 loc) • 6.71 kB
JavaScript
;
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;
};