美文网首页
字符串掩码功能(保留前后部分,中间替换为*)

字符串掩码功能(保留前后部分,中间替换为*)

作者: 已不淘气很多年 | 来源:发表于2023-11-28 17:48 被阅读0次

前两天工作中遇到个需求,需要对字符串进行掩码,字符串长度不等,需要保留前3位和后6位,中间全部替换为显示。最开始的想法就是截取前3位和后6位字符,中间根据总长度减去9的部分全部替换为

方法一:根据首尾字符截取,然后将中间字符全部替换为*,最后三个字符拼接

maskString (str, startLength, endLength) {
  if (!str || str.length <= (startLength + endLength)) return str;

  const strLength = str.length;
  const strStart = str.substr(0, startLength);
  const strEnd = str.substr(strLength - endLength, endLength);
  const strMiddle = "*".repeat(strLength - (startLength + endLength)) ;

  return `${strStart}${strMiddle}${strEnd}`;
}

方案二:使用replace和正则表达式进行配合

maskString(str, startLength, endLength) {
  const regexPattern = new RegExp(`^(.{${startLength}})(.*)(.{${endLength}})$`);

  return str.replace(regexPattern, (match, firstLength, middle, lastLength) => {
    const maskedMiddle = '*'.repeat(middle.length);
    return firstLength + maskedMiddle + lastLength;
  });
}

总结:最开始的时候,是直接使用第一种方案(固定写死首尾保留个数),然后里面的首尾长度都固定写死,然后思考了下,这种小需求在项目中可能会有大量使用,而且首尾保留的位数还不一定固定,于是稍作优化,弄完后,又想着用replace和正则表达式进行处理,于是又弄了第二种方案。

相关文章

  • js奇淫技巧

    字符串处理 字符串掩码处理将前6位数和后缀名中间的字符做掩码处理

  • javascript笔记

    JavaScript 将字符串转换为数字 parseInt() ◆只保留数字的整数部分,不会进行四舍五入运算。 ...

  • PHP 连接运算符

    就是字符串的连接,能够将前后字符连接起来。 如果不是字符串,会自助转换为字符串。

  • Python爬虫常用工具(更新中)

    字符串仅保留英文、中文、数字、中文符号、英文符号: 将秒切换为时间格式: 时间戳切换为时间: 对比两个字符串的相似...

  • JavaScript字符串方法(toUpperCase和toLo

    toUpperCase()语法:stringObject.toUpperCase()功能:把字符串转换为大写。to...

  • 字符和字符串

    字符: 字符串: 计算字符串长度: 字符串拼接 格式化字符串 字符串比较: 判断前后缀 大小写转换 转换为基本数据类型

  • C经典88案例(第一部分)

    案例ex01: 将字符串转换为一个整数 1 题目 函数:fun()功能:将字符串转换为一个整数描述:【不能使用C语...

  • golang去掉字符串中多余空格

    目的:删除字符串中多余的空格(含tab),有多个空格时,仅保留一个空格,同时将字符串中的tab换为空格方法:

  • java022String 类的转换功能和练习

    1.String类的转换功能: a:char[ ] toCharArray( ) : 把字符串转换为字符数组。(把...

  • python字符串常见数据处理方式

    字符串转换为数值类型 int方法 字符串转换为float类型 数字转换为字符串类型 字符串替换方法replace ...

网友评论

      本文标题:字符串掩码功能(保留前后部分,中间替换为*)

      本文链接:https://www.haomeiwen.com/subject/lckxgdtx.html