为了账号安全,请及时绑定邮箱和手机立即绑定

如何在JS中屏蔽字符串的某些位置

如何在JS中屏蔽字符串的某些位置

牛魔王的故事 2022-05-14 13:50:13
我有一些日期如下。我想掩盖这些值。const name = "Smith"const name2 = "Kithmatch"const number = "342782828"const number2 = "012221112230"蒙面后,const name = "S***h"const name2 = "K*******h"const number = "342**2828"const number2 = "012*****2230"姓名和号码之间有两个条件。名义上只有第一个和最后一个字符串存在。并且在前面的第三个数字和最后的四个数字中幸存下来。如何在 javascript 中进行此屏蔽?非常感谢您阅读它。
查看完整描述

2 回答

?
LEATH

TA贡献1936条经验 获得超7个赞

您只需将开头和结尾插入*函数repeat即可。和变量可以简单地调整start。endStringslice获取我们将要插入的字符串的一部分+=


请注意,如果字符太少,*则不会插入 no。


var s = "342782828";

var start = 1;

var end = 1;


if (!isNaN(s)) { // check if is number

  start = 3;

  end = 4;

}


result = s.slice(0, start);

result += "*".repeat(s.length-start-end);

result += s.slice(s.length-end);


console.log(result);


查看完整回答
反对 回复 2022-05-14
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

我不知道这是否可以通过正则表达式来实现。对于 JS 解决方案,您可以查看下面的代码段。


它使用 String 的 substring、slice 和 repeat 方法。


substring() 方法返回开始和结束索引之间的字符串部分,或者返回到字符串的末尾。


slice() 方法提取字符串的一部分并将其作为新字符串返回,而不修改原始字符串。


repeat() 方法构造并返回一个新字符串,该字符串包含调用它的字符串的指定数量的副本,并连接在一起。


在此处了解更多信息:https ://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String#Methods


const name = "Smith"

const name2 = "Kithmatch"

const number = "342782828"

const number2 = "012221112230"




const maskName = (name) => {

  const mask = "*";

  let maskedName = name.substring(0,1) + mask.repeat(name.length-2) + name.slice(-1);

  return maskedName;

};


const maskNumber = (number) => {

  const mask = "*";

  let maskedNumber = number.substring(0, 3) + mask.repeat(number.length-7) + number.slice(-4);

  return maskedNumber;

};


console.log(maskName(name));

console.log(maskName(name2));

console.log(maskNumber(number));

console.log(maskNumber(number2));


查看完整回答
反对 回复 2022-05-14
  • 2 回答
  • 0 关注
  • 216 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号