js、ts的字符串省略 *
hideString: function(string,frontLen=1,endLen=2,starLen=2) {
console.log('string',string,frontLen,endLen,starLen);
if(string == undefined || string.length < 0){
showFailToast('您的字符串字段未传入');
return;
}
let value = '';
let star = ''
// 匹配字符串不包含中文 不含特殊字符
let general = /\w/;
let reg = '(\\w{'+frontLen+'})\\w*(\\w{'+endLen+'})';
reg = new RegExp(reg)
// 匹配字符串不包含中文 含特殊字符
let spGeneral = /\,/;
// 匹配中文名称
let chineseName = /[\u4e00-\u9fa5]/;//匹配所有的中文字符
let chReg = '(\[\u4e00-\u9fa5]{'+frontLen+'})\[\u4e00-\u9fa5]*(\[\u4e00-\u9fa5]{'+endLen+'})';
chReg = new RegExp(chReg);
if(starLen){
for(let i = 0; i < starLen ; i++){
star+="*"
}
}
if(spGeneral.test(string)){
// 匹配有逗号的 手动进行更新
let arr = string.split(',');
let frontWords = arr[0].substring(0,frontLen);
let endWords = arr[1].substring(0,endLen);
value = `${frontWords}${star}${endWords}`
}else if(general.test(string)){
// 针对所有的数字,英文(大小些字母)
value = string.replace(reg, '$1'+star+'$2');
}else if(chineseName.test(string)){
// 匹配中文的
value = string.replace(chReg, '$1'+star+'$2');
}
return value;
}
/**
* 匹配纯数字,纯字母(大小写),字母数字组合等隐藏字符
* @param str 需要改造的字符串 frontLen 前面需要留几位数 endLen 后面需要留几位数 starLen 中间的-*号留几位数
*/
/** 字符串隐藏部分内容功能 */
static hideString = function(str :string,frontLen:number=2,endLen:number=2,starLen:number=2):string {
if(str == undefined || str.length < 0){
showFailToast('您的字符串字段未传入');
return str;
}
let value = '';
let star = ''
// 匹配字符串不包含中文 不含特殊字符
let general = /\w/;
let reg = '(\\w{'+frontLen+'})\\w*(\\w{'+endLen+'})';
let regRXp = new RegExp(reg)
// 匹配字符串不包含中文 含特殊字符
let spGeneral = /\,/;
// 匹配中文名称
let chineseName = /[\u4e00-\u9fa5]/;//匹配所有的中文字符
let chReg = '(\[\u4e00-\u9fa5]{'+frontLen+'})\[\u4e00-\u9fa5]*(\[\u4e00-\u9fa5]{'+endLen+'})';
let chRegExp = new RegExp(chReg);
if(starLen){
for(let i = 0; i < starLen ; i++){
star+="*"
}
}
if(spGeneral.test(str)){
// 匹配有逗号的 手动进行更新
let arr = str.split(',');
let frontWords = arr[0].substring(0,frontLen);
let endWords = arr[1].substring(0,endLen);
value = `${frontWords}${star}${endWords}`
}else if(general.test(str)){
// 针对所有的数字,英文(大小些字母)
value = str.replace(regRXp, '$1'+star+'$2');
}else if(chineseName.test(str)){
// 匹配中文的
value = str.replace(chRegExp, '$1'+star+'$2');
}
return value;
}
效果