js 使用正则隐藏敏感信息
时间: 2023-05-20 12:03:35 浏览: 59
可以使用正则表达式来隐藏敏感信息,比如使用 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 分别代表正则表达式中的第一个和第二个括号匹配的内容。
相关问题
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()方法结合正则表达式来实现。下面是一种实现方式:
1. 首先,定义一个函数,将需要隐藏的手机号作为参数传入。
2. 在函数内部,使用replace()方法来替换手机号中间的几位数字。正则表达式可以用来匹配手机号中间的数字。
3. 使用正则表达式/\d{3}(?=\d{4})/g来匹配手机号中间的三位数字。其中\d表示匹配数字,{3}表示匹配三次,(?=\d{4})表示后面需要跟着四位数字。
4. 将匹配到的数字替换为*号,可以使用replace()方法的第二个参数来指定替换内容。
5. 返回替换后的手机号。
示例代码如下:
```javascript
function hidePhoneNumber(phoneNumber) {
return phoneNumber.replace(/\d{3}(?=\d{4})/g, '****');
}
// 调用函数并传入手机号
var phoneNumber = '13612345678';
var hiddenPhoneNumber = hidePhoneNumber(phoneNumber);
console.log(hiddenPhoneNumber);
```
输出结果为:136****5678
通过使用正则表达式,我们可以将手机号中间的几位数字替换为*号,从而实现隐藏手机号中间的功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* [js 隐藏手机号码中间四位](https://blog.csdn.net/m0_48486615/article/details/127092623)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *2* [JS正则表达式隐藏身份证中间8位(电话号码/姓名/千位符)......](https://blog.csdn.net/qq_43962582/article/details/122510577)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
- *3* [jsp隐藏关键敏感字段信息只显示前后字段的示例](https://download.csdn.net/download/weixin_38693753/14046625)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"]
[ .reference_list ]