use-on-demand
Version:
182 lines • 6.95 kB
JavaScript
var xX_SString_Helper = /** @class */ (function () {
function xX_SString_Helper() {
}
/**
* 创建一个【独一无二】的【随机字符串】
*/
xX_SString_Helper.create_RandUnique_Str = function () {
var timestamp = '' + new Date().valueOf();
var randomNum = '' + parseInt(((1 + Math.random()) * 65536));
return randomNum.concat(timestamp).toString(32);
};
/**
* 【星号遮挡】格式化手机号
* 如:
* formatPhone("12345678910", "start") => ****5678910
* formatPhone("12345678910", "center") => 123****8910
* formatPhone("12345678910", "end") => 1234567****
* @param _phone 手机号
* @param format 格式,可选值有:start、center、end
* @param _count 格式化多少个字符,默认4个
* @returns {string}
*/
xX_SString_Helper.prototype.starMask_Phone = function (_phone, format, _count) {
if (format === void 0) { format = 'center'; }
if (_count === void 0) { _count = 4; }
var phone = _phone + '';
var count = _count;
var len = phone.length;
var arr = phone.split('');
var start = 0;
var end = 0;
var replacement = '***********************';
if (format === 'start') {
if (typeof count == 'undefined') {
count = 4;
}
arr.splice(0, count, replacement.substr(0, count));
return arr.join('');
}
if (format === 'center') {
if (typeof count == 'undefined') {
count = 4;
}
start = Math.floor((len - count) / 2);
end = count;
arr.splice(start, end, replacement.substr(0, count));
return arr.join('');
}
if (format === 'end') {
if (typeof count == 'undefined') {
count = 4;
}
arr.splice(len - count, len, replacement.substr(0, count));
return arr.join('');
}
return phone;
};
/**
* 【星号遮挡】格式化邮箱
* 如:
* formatEmail("123456789@qq.com") => 12*****89@qq.com
* formatEmail("abc@qq.com") => a*c@qq.com
* formatEmail("abc123@qq.com") => a*****@qq.com
* formatEmail("abc12@qq.com") => a***2@qq.com
* formatEmail("a@qq.com") => *@qq.com
* @param email 邮箱
* @param _maxCount 最大截取长度,默认5
*/
xX_SString_Helper.prototype.starMask_Email = function (email, _maxCount) {
if (_maxCount === void 0) { _maxCount = 5; }
var maxCount = _maxCount;
var emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
if (!email || !emailReg.test(email)) {
return email;
}
if (typeof maxCount == 'string' || maxCount <= 0) {
maxCount = 5;
}
var emailLeft = email.split('@')[0];
var emailRight = email.split('@')[1];
var leftResult = '';
var emailLeftLen = emailLeft.length;
if (emailLeftLen == 1) {
leftResult = '*';
}
else {
/* 如果邮箱名长度小于等于最大截取长度,则只留第一个及最后一个字符。效果:abcd@123.com => a**d@123.com*/
if (emailLeftLen <= maxCount) {
var len = emailLeftLen;
while (len > 0) {
leftResult += '*';
len--;
}
leftResult = leftResult.split('');
leftResult[0] = emailLeft.charAt(0);
leftResult[emailLeftLen - 1] = emailLeft.charAt(emailLeftLen - 1);
}
else {
/* 如果邮箱名长度大于最大截取长度,则将邮箱名中间的替换成"*" */
var startIndex = Math.ceil((emailLeftLen - maxCount) / 2);
var endIndex = startIndex + maxCount;
leftResult = emailLeft.split('');
if (endIndex > emailLeftLen) {
endIndex = emailLeftLen - 1;
}
for (; startIndex < endIndex; startIndex++) {
leftResult[startIndex] = '*';
}
}
leftResult = leftResult.join('');
}
return leftResult + '@' + emailRight;
};
/**
* 【文件】的体积大小,格式化显示。
*/
xX_SString_Helper.formatFileSize = function (bytes_num, fixed_num) {
if (fixed_num === void 0) { fixed_num = 0; }
function quickCalc(exponent, isTotal) {
var num = isTotal ?
bytes_num // 总数
: (bytes_num % Math.pow(1024, exponent + 1)); // 取余数
return num / Math.pow(1024, exponent);
}
return {
GB: parseInt(quickCalc(3, false)),
MB: parseInt(quickCalc(2, false)),
KB: parseInt(quickCalc(1, false)),
B: parseInt(quickCalc(0, false)),
//
total_GB: quickCalc(3, true).toFixed(fixed_num),
total_MB: quickCalc(2, true).toFixed(fixed_num),
total_KB: quickCalc(1, true).toFixed(fixed_num),
total_B: quickCalc(0, true).toFixed(fixed_num),
};
};
/**
* 文本超出内容,用【省略号】代替
*/
xX_SString_Helper.ellipsisText = function (text, num) {
if (num === void 0) { num = text.length; }
var subStr = text.substring(0, num);
return subStr + (text.length > num ? ' ... ' : '');
};
/**
* 数字超过指定大小,如【99】后;用【99+】代替
*/
xX_SString_Helper.outOfNum_99plus = function (_num, _maxNum) {
var num = _num ? parseFloat(_num) : 0;
var maxNum = parseFloat(_maxNum);
if (num > maxNum) {
return maxNum + "+";
}
else {
return num;
}
};
/**
* 创建v-for独一无二的id。用法:将强制重建 列表循环内的【子组件】项。
*/
xX_SString_Helper.uid = function () {
function s4() {
return Math.floor((1 + Math.random()) * 0x10000)
.toString(16)
.substring(1);
}
return s4() + s4() + '-' + s4() + '-' + s4() + '-' +
s4() + '-' + s4() + s4() + s4();
};
/**
* 首字母大写
*
* 参考资料:
* https://stackoverflow.com/a/1026087/6264260
*/
xX_SString_Helper.capitalizeFirstLetter = function (string) {
return string.charAt(0).toUpperCase() + string.slice(1);
};
return xX_SString_Helper;
}());
export { xX_SString_Helper };
//# sourceMappingURL=SString_Helper.js.map