例如: 123456789正则表达式结果:#####6789
如果它是 10 位或更多,它不会改变任何东西。
为什么这个基本的字符串问题需要正则表达式?
function mask(val){
result = (val.length === 9) ? "#####" + val.substr(5, val.length-1) : val;
console.log(result);
}
mask("123456789");
mask("1234567890");
假设您的数字前面总是有一个字母或空格:
myString.replace(new RegExp("([a-zA-Zs])(d{5})(d{4})([a-zA-Zs])",g), "$1#####$3$4")
您可以使用String#slice
并在添加前缀后调整长度。
function getMasked(string) {
return string.length < 10
? ('#####' + string.slice(5)).slice(0, string.length)
: string;
}
console.log(getMasked('123456789'));
console.log(getMasked('1234567890'));
console.log(getMasked('1'));