为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript:在“onkeyup”事件中仅屏蔽信用卡号的前 12 位数字

Javascript:在“onkeyup”事件中仅屏蔽信用卡号的前 12 位数字

明月笑刀无情 2021-10-21 17:06:19
我想在“onkeyup”事件中将前 12 位数字屏蔽为 * 并保留接下来的 4 位数字。下面的函数是屏蔽前 12 位数字,但在“onblur”事件中一次全部屏蔽。我已经尝试过来自 stackoverflow 的所有答案,但没有一个能帮到我。function formatCardNumber(element) {        if(element.value.length > 14) {                var position = element.selectionStart;                element.value = element.value.replace(/\W/gi, '').replace(/^(.{4})(.{4})(.{4})(.*)$/, "$1 $2 $3 $4");                if(element.value.length != 19) {                        element.setSelectionRange(position, position);                }        }        else {                element.value = element.value.replace(/\W/gi, '').replace(/(.{4})/g, '$1 ');        }       }function showCardValue() {        document.getElementById("cardNo").value = document.getElementById("cardNoSafe").value;}function hideCardValue(val) {        document.getElementById("cardNoSafe").value = val;        var len = val.length;        if (len >= 14) {                const regex = /\d{4}(?= \d{1})/g;                const substr = "****";                document.getElementById("cardNo").value = val.replace(regex, substr);        }}<div>  <input id="cardNo" placeholder="Enter Card Number" onfocus="showCardValue()" onblur="hideCardValue(this.value)" onkeypress="formatCardNumber(this)" maxlength="19">  <input id="cardNoSafe" value="" style="display:none;"></div>
查看完整描述

2 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

我无法为您提供完整的解决方案,但这应该足以让您将其适应您自己的工作,包括您所要求的行为:)


function hideCardValue(element){

  var tmpval = element.value;

  if(tmpval.length <12){

    var re = /\d{1}/;

    document.getElementById("cardNoSafe").value += tmpval.replace(new RegExp('\\*', 'g'),"");

    

    document.getElementById("cardNo").value = tmpval.replace(/\d{1}/,"*");

    

  }

}

<div>

  <input id="cardNo" placeholder="Enter Card Number" onkeyup="hideCardValue(this);" maxlength="19">

  <input id="cardNoSafe" value="" style="display:true;">

</div>

我使隐藏的 Box 可见以查看安全值。

希望这可以帮助 ;)


查看完整回答
反对 回复 2021-10-21
  • 2 回答
  • 0 关注
  • 182 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信