0

我正在构建一个显示一堆电话号码的小应用程序。

javascript 对象看起来像这样:

myObject.phoneNumber = model.phoneNumber;

然后我在屏幕上显示 myObject.phoneNumber。但是,我想掩盖它,使其看起来像 XXX-XXX-1234。然后,每当您将鼠标悬停在电话号码上时,您都会看到整个电话号码!

我正在考虑做这样的事情......

myObject.phoneNumber = model.phoneNumber;
myObject.maskedNumber = model.phoneNumber.replaceFirst6WithX's //psuedoCode

然后鼠标悬停,

    $(".phoneNumber")
        .mouseOver(function (e) {
            $(".phoneNumber").hide();
            $(".maskedNumber").show()
        });

而在鼠标移出时则相反。

所以我的问题是:我如何屏蔽(或隐藏前 6 个)电话号码来完成此操作?

4

4 回答 4

1

试试这个

var phone = "1234567890";
phone.replace(phone.substring(0,6), 'XXXXXX');
于 2012-10-09T16:32:53.967 回答
1
myObject.maskedNumber = "XXX-XXX" + myObject.phoneNumber.substring(7);
于 2012-10-09T16:37:03.227 回答
1

这是一个简单的例子,但很实用。

小提琴

于 2012-10-09T16:38:30.903 回答
1

您可以使用函数将前 6 个数字/字符的字符串返回为“x”:

function mark(phone) {
    var str='';
    var count=0;
    for(i=0; i<phone.length; i++) {
        if(phone.charAt(i)!="-" && count<6) {
            str+='x';
            count++;
        }
        else
            str+=phone.charAt(i);
    }
    return str;
}

当鼠标悬停在元素上时,您可以将元素的内容更改为返回的字符串。这说明了数字中的“-”。您还可以更改它以检测任何不是数字的东西。

于 2012-10-09T16:53:02.070 回答