Ich erstelle eine kleine Anwendung, die eine Reihe von Telefonnummern anzeigt.

Das Javascript-Objekt sieht ungefähr so aus:

myObject.phoneNumber = model.phoneNumber;

Dann zeige ich myObject.phoneNumber auf dem Bildschirm an. Ich möchte es jedoch maskieren, damit es so aussieht wie XXX-XXX-1234. Wenn Sie dann mit der Maus über die Telefonnummer fahren, sehen Sie die gesamte Telefonnummer!

Ich dachte daran, so etwas zu tun ...

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

Dann mit der Maus über,

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

Und mit der Maus das Gegenteil tun.

Meine Frage lautet also: Wie maskiere (oder verstecke ich die ersten 6) Nummern der Telefonnummer, um dies zu erreichen?

0
Jeff 9 Okt. 2012 im 20:28

4 Antworten

Beste Antwort

Dies ist ein vereinfachtes und dennoch funktionales Beispiel.

Geige

1
James Kleeh 9 Okt. 2012 im 16:38

Sie können eine Funktion haben, um die Zeichenfolge mit den ersten 6 Ziffern / Zeichen als "x" zurückzugeben:

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;
}

Sie können den Inhalt des Elements in die zurückgegebene Zeichenfolge ändern, wenn Sie mit der Maus darüber fahren. Dies erklärt das "-" in der Nummer. Sie können es auch ändern, um alles zu erkennen, was keine Ziffer ist.

1
WhiT3Kr0w 9 Okt. 2012 im 16:53
myObject.maskedNumber = "XXX-XXX" + myObject.phoneNumber.substring(7);
1
jalynn2 9 Okt. 2012 im 16:37

Versuche dies

var phone = "1234567890";
phone.replace(phone.substring(0,6), 'XXXXXX');
1
scusyxx 9 Okt. 2012 im 16:32