js 使用正则隐藏敏感信息,两位的话隐藏最后一位,大于两位的话只保留开始和结束,其他的隐藏,方法需要三个参数,第一个参数是要隐藏的字符串,第二个参数是开头和结束需要明文的数量,第三个参数是隐藏信息时要替换的字符串
时间: 2023-05-20 08:03:54 浏览: 74
可以使用以下代码实现:
function hideSensitiveInfo(str, visibleLength, replaceStr) {
if (str.length <= 2) {
return str.substring(0, 1) + replaceStr;
} else {
return str.substring(0, visibleLength) + replaceStr.repeat(str.length - visibleLength * 2) + str.substring(str.length - visibleLength);
}
}
其中,visibleLength 表示需要明文显示的字符数量,replaceStr 表示需要替换的字符串,可以是任意字符串。使用时,调用该函数并传入三个参数即可。
例如,调用 hideSensitiveInfo("123456789", 2, "*"),输出结果为 "12******89"。
相关问题
js 使用正则隐藏敏感信息,两位的话隐藏最后一位,大于两位的话只保留开始和结束,其他的隐藏
### 回答1:
可以使用正则表达式的 replace 方法来实现这个功能,具体代码如下:
```javascript
function hideSensitiveInfo(str) {
if (str.length <= 2) {
return str.replace(/.$/, '*');
} else {
return str.replace(/^(\S{1}).+(\S{1})$/, '$1****$2');
}
}
console.log(hideSensitiveInfo('12')); // 1*
console.log(hideSensitiveInfo('123')); // 1**3
console.log(hideSensitiveInfo('123456')); // 1****6
```
这个函数接受一个字符串参数,根据字符串的长度来决定如何隐藏敏感信息。如果字符串长度小于等于 2,那么只需要隐藏最后一位,可以使用正则表达式 `/$/` 来匹配最后一个字符,然后用 `*` 替换它即可。如果字符串长度大于 2,那么需要保留开始和结束的两个字符,中间的部分全部隐藏,可以使用正则表达式 `/^(\S{1}).+(\S{1})$/` 来匹配字符串的开始和结束字符,中间的部分用 `****` 替换即可。
### 回答2:
在JavaScript中,我们可以使用正则表达式来隐藏敏感信息。根据题目要求,如果敏感信息只有两位,我们需要隐藏最后一位;如果敏感信息长度大于两位,我们需要保留开始和结束的字符,将其他部分隐藏。
首先,我们可以使用正则表达式的replace方法,结合匿名函数来实现这个功能。代码如下:
```javascript
function hideSensitiveInfo(sensitiveInfo) {
return sensitiveInfo.replace(/./g, function(match, index) {
if (index < sensitiveInfo.length - 2) {
return '*'; // 对于长度大于两位的信息,隐藏部分字符
} else {
return match; // 对于长度小于等于两位的信息,只隐藏最后一位
}
});
}
// 调用示例
console.log(hideSensitiveInfo('12')); // 输出:1*
console.log(hideSensitiveInfo('12345')); // 输出:1****5
console.log(hideSensitiveInfo('abcdefghi')); // 输出:a*******i
```
在这个代码中,我们首先使用了正则表达式`/./g`来表示匹配任意字符。在replace方法的回调函数中,我们获取到匹配到的字符和其在字符串中的索引。
如果索引小于字符串长度减2,就返回一个星号,表示隐藏该字符;否则,直接返回原字符。
这样通过replace方法,我们就可以将敏感信息中的部分字符进行了隐藏,达到了题目要求。
### 回答3:
在JavaScript中,可以使用正则表达式来隐藏敏感信息。如果敏感信息只有两位,则只需要隐藏最后一位;如果敏感信息超过两位,则只保留开头和结尾,其他部分隐藏。
下面是一个实现这个功能的JavaScript函数:
```javascript
function hideSensitiveInfo(info) {
let regex;
if (info.length === 2) {
regex = /(.*).$/;
} else {
regex = /^(.).*(.)$/;
}
return info.replace(regex, "$1**$2");
}
```
这个函数接受一个字符串作为参数,然后根据字符串的长度来选择合适的正则表达式进行替换。如果字符串长度为2,则使用`/(.*).$/`正则表达式,该正则表达式匹配除了最后一位以外的所有字符,并使用`$1`和`$2`指代开始和结束的字符,然后用两个星号替换中间的字符。
如果字符串长度超过2,则使用`/^(.).*(.)$/`正则表达式,该正则表达式匹配开头和结尾的字符,并使用`$1`和`$2`指代这两个字符,然后用两个星号替换中间的所有字符。
下面是函数的使用示例:
```javascript
console.log(hideSensitiveInfo("12")); // 输出:1*
console.log(hideSensitiveInfo("12345678")); // 输出:1******8
console.log(hideSensitiveInfo("abcdefg")); // 输出:a*****g
```
这个函数可以很方便地隐藏敏感信息,确保信息的安全性。
js 使用正则隐藏敏感信息
可以使用正则表达式来隐藏敏感信息,比如使用 replace() 方法将敏感信息替换成星号或其他符号。例如:
```
var str = "我的手机号码是13888888888";
var reg = /(\d{3})\d{4}(\d{4})/;
var newStr = str.replace(reg, "$1****$2");
console.log(newStr); // 输出:我的手机号码是138****8888
```
这个例子中,正则表达式 /(\d{3})\d{4}(\d{4})/ 匹配了手机号码中的前三位和后四位,然后使用 replace() 方法将其替换成了 $1****$2,其中 $1 和 $2 分别代表正则表达式中的第一个和第二个括号匹配的内容。
阅读全文