gpt4 book ai didi

javascript - 使用 jQuery 屏蔽文本框中的值

转载 作者:行者123 更新时间:2023-11-30 07:58:47 25 4
gpt4 key购买 nike

我有一个文本框和 onkeyup 事件,当用户一个接一个地输入值时,我必须屏蔽(带有星号 (*) 字符)字符串的一部分(这是信用卡号)。例如假设用户将输入的值是 1234 5678 1234 2367

但文本框会将数字显示为 1234 56** **** 2367

我一般如果用户输入 XXXX XXXX XXXX XXXX,输出将是 XXXX XX** **** XXXX 其中 X 代表任何有效数字

程序需要使用jQuery来完成。我已经制作了如下程序(并且它也在运行):

<html>

<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script>
<script>
$(document).ready(function() {

$("#txtCCN").keyup(function(e) {

var CCNValue = $(this).val();
var CCNLength = CCNValue.length;

$.each(CCNValue, function(i) {

if (CCNLength <= 7) {
$("#txtCCN").val(CCNValue);
} //end if

if (CCNLength >= 8 && CCNLength <= 14) {
$("#txtCCN").val(CCNValue.substring(0, 7) + CCNValue.substring(7, CCNLength).replace(/[0-9]/g, "*"));
} //end if

if (CCNLength >= 15) {
$("#txtCCN").val(CCNValue.substring(0, 7) + CCNValue.substring(7, 15).replace(/[0-9]/g, "*") + CCNValue.substring(15));
} //end if
});
});
});
</script>
</head>

<body>
<input type="text" id="txtCCN" maxlength=19 />
</body>
</html>

但我认为该程序可以以更优雅的方式进行优化/重写。

注意我目前不需要任何验证。

最佳答案

不需要length的任何条件,substringreplace可以安全地直接用于任意长度的字符串。

$(document).ready(function() {

$("#txtCCN").keyup(function(e) {
var CCNValue = $.trim($(this).val());

$(this).val(CCNValue.substring(0, 7) + CCNValue.substring(7, 15).replace(/\d/g, "*") + CCNValue.substring(15));
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<input type="text" id="txtCCN" maxlength=19 />


val也可以用

$(document).ready(function() {

$("#txtCCN").keyup(function(e) {
$(this).val(function(i, v) {
return v.substring(0, 7) + v.substring(7, 15).replace(/\d/g, "*") + v.substring(15);
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.1/jquery.min.js"></script>
<input type="text" id="txtCCN" maxlength=19 />


同样可以在 VanillaJS 中完成

document.addEventListener('DOMContentLoaded', function() {
document.getElementById('txtCCN').addEventListener('keyup', function() {
var value = this.value.trim();

this.value = value.substring(0, 7) + value.substring(7, 15).replace(/\d/g, '*') + value.substring(15);
}, false);
});
<input type="text" id="txtCCN" required maxlength="19" />

关于javascript - 使用 jQuery 屏蔽文本框中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33315390/

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