Ex:123456789 正则表达式结果:##### 6789
如果是10位数或更多位数,则不会改变任何内容。
答案 0 :(得分:3)
为什么这个基本的字符串问题需要正则表达式?
function mask(val){
result = (val.length === 9) ? "#####" + val.substr(5, val.length-1) : val;
console.log(result);
}
mask("123456789");
mask("1234567890");

答案 1 :(得分:0)
假设您的号码前面总是以字母或空格开头:
myString.replace(new RegExp("([a-zA-Z\s])(\d{5})(\d{4})([a-zA-Z\s])",g), "$1#####$3$4")
答案 2 :(得分:0)
您可以使用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'));