2012-10-09 127 views
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個)的電話號碼來完成這個?

+0

它需要安全嗎?也就是說,如果有人可以從HTML源文件中讀取完整的電話號碼,那麼這樣可以嗎 – Tchoupi

+0

不,它並不需要是安全的。電話號碼可以在來源中讀取。這只是爲了減少混淆,而不是隱藏用戶的任何敏感信息。 – Jeff

回答

1

這是一個簡單的例子,但功能。

Fiddle

1

嘗試此

var phone = "1234567890"; 
phone.replace(phone.substring(0,6), 'XXXXXX'); 
1
myObject.maskedNumber = "XXX-XXX" + myObject.phoneNumber.substring(7); 
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; 
} 

您可以將元素的內容更改爲返回的字符串時,鼠標就結束了。這就是數字中的「 - 」。你也可以改變它來檢測任何不是數字的東西。