2013-08-19 6 views
0

나는 사회 보장 번호의 마지막 네 개의 숫자를 제외한 모든 것을 숨기는 스크립트가 있습니다. 대시를 허용하고 수학을 변경하여 9 자리 문자열이 아닌 11 자리 문자열 중 마지막 4 자리를 표시하도록 변경해야합니다. 여기에 문자 수당은 줄입니다 :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

와우! 저건 완벽 해. 대단히 감사합니다. –