Javascript SSN 掩码为特定格式



我有一个文本框和一个用作遮罩/取消屏蔽按钮的按钮。它调用 checkSSN(( 函数。默认情况下,文本应被屏蔽。但是我需要以某种格式拥有它。SSN 应为 9 个字母数字字符。当它被屏蔽时,某些字符应更改为"X"(例如AF25QT34G更改为AXXXXT34G(。下面的代码进行屏蔽,但我希望它在我仍在输入时进行屏蔽。另外,如何将原始值检索到代码隐藏中。还是有其他方法可以方便我做?

function checkSSN(){
if(ssn== undefined)
var ssn= "";
if(ssn == "")
ssn = document.getElementById('<%= txtSSN.ClientID %>').value;
var count = (document.getElementById('<%= txtSSN.ClientID %>').value.match(/X/g) || []).length;
if(count > 1)
showSSN(ssn);
else
hideSSN(ssn);
}
function hideSSN(ssn){
var maskchar = 'X';
var nonmaskdigit = 4;
var firstpart = ssn.substring(0,1);
var middlepart = maskchar.repeat(ssn.length - 5);
var lastpart = ssn.substring(ssn.length - nonmaskdigit);
var maskedSSN = firstpart + middlepart + lastpart;
document.getElementById('<%= txtSSN.ClientID %>').value = ssn;
}
function showSSN(ssn){
document.getElementById('<%= txtSSN.ClientID %>').value = ssn;
ssn = "";
}

检查这个jsfiddle。我认为这将解决您的问题

http://jsfiddle.net/gtom9tvL/

$('.value').on('keydown keyup mousedown mouseup', function() {
var res = this.value, //grabs the value
len = res.length, //grabs the length
max = 9, //sets a max chars
stars = len>0?len>1?len>2?len>3?len>4?'XXX-XX-':'XXX-X':'XXX-':'XX':'X':'', //this provides the masking and formatting
result = stars+res.substring(5); //this is the result
$(this).attr('maxlength', max); //setting the max length
$(".number").val(result); //spits the value into the input
});

这已经在这里回答了 屏蔽社会保险号输入

最新更新