0

社会保障番号の下 4 桁以外をすべて非表示にするスクリプトがあります。ダッシュを許可し、9 桁の文字列ではなく 11 桁の文字列の最後の 4 桁を表示するように計算を変更する必要があります。文字許容量の行は次のとおりです。

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

そして、ここに jsfiddle があります: 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 sec 番号の最後の 4 桁を表示する必要があります (例: XXX-XX-XXXX)。

助けてくれてありがとう!

4

1 に答える 1

0

試す

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] : '')
    });
};

デモ:フィドル

于 2013-08-19T03:48:24.937 に答える