gpt4 book ai didi

jquery - 将输入中的数字屏蔽为特殊字符 (*)

转载 作者:行者123 更新时间:2023-12-03 23:04:19 25 4
gpt4 key购买 nike

我试图将 SSN 字段中的所有数字屏蔽为 *,同时让用户仅输入数值并使用破折号格式化 SSN。

这是一个 fiddle 链接:

https://jsfiddle.net/7f8p83am/

$('#ssn').keyup(function() {
var val = this.value.replace(/\D/g, '');
var newVal = '';
var sizes = [3, 2, 4];
var maxSize = 10;

for (var i in sizes) {
if (val.length > sizes[i]) {
newVal += val.substr(0, sizes[i]) + '-';
val = val.substr(sizes[i]);
} else {
break;
}
}

newVal += val;
this.value = newVal;
});

显然,替换是去掉*。关于如何做到这一点有什么想法吗?

提前致谢。

最佳答案

您可以考虑删除输入的所有非数字和星号,并用星号替换数字:

// Remove all non-digits/asterisks and replace digits with asterisks
var val = this.value.replace(/[^\d\*]/g, '').replace(/\d/g,'*');

此外,您可能还想尝试在元素上添加 maxlength 属性以防止其继续:

<input id='ssn' maxlength='11'/>

最后,您可能需要考虑存储一个隐藏字段或变量来存储您正确的 SSN 值,以便您可以按预期将其发布到服务器。

示例

enter image description here

<!DOCTYPE html>
<html>

<head>
<script src="https://code.jquery.com/jquery-2.1.4.js"></script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>JS Bin</title>
</head>

<body>
<input id='ssn' maxlength='11' />
<script>
$(function() {
$('#ssn').keyup(function() {
var val = this.value.replace(/[^\d\*]/g, '').replace(/\d/g, '*');
var newVal = '';
var sizes = [3, 2, 4];
var maxSize = 10;

for (var i in sizes) {
if (val.length > sizes[i]) {
newVal += val.substr(0, sizes[i]) + '-';
val = val.substr(sizes[i]);
} else {
break;
}
}

newVal += val;
this.value = newVal;
});
});
</script>
</body>

</html>

关于jquery - 将输入中的数字屏蔽为特殊字符 (*),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37441520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com