javascriptx
Version:
javascript 基础库扩展
75 lines (71 loc) • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
// String
var resovle = function resovle(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;
}
};
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;
}
exports.default = resovle;