JS 手机号、姓名、身份证号脱敏处理

需求1: 11位手机号中间四位脱敏显示,例如:187****1234

	function noPassByMobile(str){
	    if(null != str && str != undefined){
	        var pat=/(\d{3})\d*(\d{4})/;
	        return str.replace(pat,'$1****$2');
	    } else {
	        return "";
	    }
	}

需求2: 姓名脱敏处理,规则:3个字以内脱敏第一个字,4—6个字脱敏前两个字,大于6个字脱敏第3—6个字,示例:张三(*三)、张三水(*三水)、长孙无忌(**无忌)、罗斯托罗司机格(罗斯XXXX格)

	function noPassByName(str){
	    if(null != str && str != undefined){
	        if(str.length <= 3){
	            return "*" + str.substring(1,str.length);
	        } else if(str.length > 3 && str.length <= 6){
	            return "**" + str.substring(2,str.length);
	        } else if(str.length > 6){
	            return str.substring(0,2) + "****" + str.substring(6,str.length)
	        }
	    } else {
	        return "";
	    }
	}

需求3: 身份证号脱敏处理

//正则表达式
var idCard = '410184199312042029';
var id2 = idCard.replace(/^(.{6})(?:\d+)(.{4})$/, "$1****$2");
var id3 = idCard.replace(/^(.{2})(?:\w+)(.{1})$/, "\$1****\$2");
var id4 = idCard.replace(/^(.{4})(?:\w+)(.{4})$/, "\$1****\$2");

猜你喜欢

转载自blog.csdn.net/yuan_jlj/article/details/112781527