2013-08-19 82 views
0

我有一個腳本,隱藏一切,但最後四個社會安全號碼的數字。我需要調整它以允許破折號並更改數學以顯示11位數字串中的最後四位,而不是9位數字串。這裏就是性格津貼行:JQuery允許數字和短劃線

$this.val($this.val().replace(/^\d{5}/, '*****')); 

而這裏的jsfidle:http://jsfiddle.net/d5KaJ/45/

而這裏的腳本:

var retrieveValue = function(ev){ 
     var $this = $(this), 
      val = $this.data('value'); 

     if (val) { 
      $this.val(val); 
     } 
    }, 
    hideValue = function(ev){ 
     var $this = $(this); 

     $this.data('value', $this.val()); 
     $this.val($this.val().replace(/^\d{5}/, '*****')); 
    }; 

$('#field_a7afui').focus(retrieveValue); 

$('#field_a7afui').blur(hideValue); 

$('#form_hv3hcs').submit(function(ev){ 
    ev.preventDefault(); 
    retrieveValue.call($('#field_a7afui')[0], ev); 
    alert($('#field_a7afui').val()); 
    hideValue.call($('#field_a7afui')[0], ev); 
}); 

再次,我只需要它允許數字和破折號和我需要它顯示一個11位數的soc秒數的最後四位數字,例如XXX-XX-XXXX

在此先感謝您的幫助!

+0

是什麼在使它更難用戶輸入的數據呢?任何窺探的保護措施大都是虛構的。 –

+0

我不明白這是如何使用戶輸入數據的最難點。我知道這不是一個全面的安全解決方案。就是這樣。但是這並不能使用戶輸入他們的號碼變得更加困難。 –

回答

1

嘗試

hideValue = function(ev){ 
    var $this = $(this); 

    $this.data('value', $this.val()); 
    $this.val(function(idx, val){ 
     var mask = val.match(/^(.*?)(\d{4})$/); 

     return (mask[1] ? mask[1].replace(/\d/g, '*') : '') + (mask[2] ? mask[2] : '') 
    }); 
}; 

演示:Fiddle

+0

哇!那很完美。非常感謝。 –

相關問題