js、ts的字符串省略 *

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;
    }

效果
在这里插入图片描述
在这里插入图片描述

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值