要做一个脱敏的功能,记录一下,其实还是不大懂这个正则,有大佬解释下吗?
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>名字号码脱敏</title>
</head>
<body>
<h2>请输入字符</h2>
<input type="text" id="input">
<input type="text" id="output">
<script src="../lingui/jquery.min.js"></script>
<script>
// 数组
var arr = ['王小小', '王小小1', '王小小123', '王小小123456']
var reg = /(?<=.)./g;
arr = arr.map(function (item) {
return item.replace(reg, '*');
})
console.log(arr);
// 单个对象
var ar = '王小小1'
var reg = /(?<=.)./g;
ar = ar.replace(reg, '*');
console.log(ar);
// ? 匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 。? 等价于 {0,1}。
// . 匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。
// ( ) 标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( 和 \)。
// g global - 全局匹配 查找所有的匹配项。
$("input").blur(function () {
var put = $("#input").val()
// console.log(put);
ret = new Array(2).join('*') + put.substr(1)
// console.log(ret);
$("#output").attr('value', ret)
})
// 号码脱敏
var str = "18912341234"
var pat = /(\d{3})\d*(\d{4})/
var b = str.replace(pat, '$1****$2');
console.log(b)
</script>
</body>
</html>
<!DOCTYPE html>
<html>
浏览器显示
1、
2、