Java脚本:如何使用正则表达式掩盖九位数的前五位数?

时间:2017-10-22 19:31:19

标签: javascript

Ex:123456789 正则表达式结果:##### 6789

如果是10位数或更多位数,则不会改变任何内容。

3 个答案:

答案 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'));