Javascript 如何在ASP.NET文本框中仅允许信用卡/借记卡号格式

Javascript 如何在ASP.NET文本框中仅允许信用卡/借记卡号格式,javascript,c#,jquery,css,asp.net,Javascript,C#,Jquery,Css,Asp.net,我必须只允许asp.net文本框中的借记/信用卡号格式。下面是一个示例屏幕截图- 请让我知道如何使用asp.net textbox执行此操作,我不必使用验证程序 注意:我只需要允许数字,并且在每4个数字之后 应该是连字符(-) 您可以执行以下操作: <input type="text" onkeypress="return allowNumbersAndHyphen(event)"> 函数allowNumbersAndHyphen(evt){ var charCo

我必须只允许asp.net文本框中的借记/信用卡号格式。下面是一个示例屏幕截图-

请让我知道如何使用asp.net textbox执行此操作,我不必使用验证程序

注意:我只需要允许数字,并且在每4个数字之后 应该是连字符(-)


您可以执行以下操作:

     <input type="text" onkeypress="return allowNumbersAndHyphen(event)">

函数allowNumbersAndHyphen(evt){
var charCode=(evt.which)?evt.which:event.keyCode;
//允许数字、左键(37)右键(39)退格(8)删除(46)和连字符(45)
var length=$('input').val().length;
如果((charCode==37 | | charCode==39 | | | charCode==8 | | charCode==46 | | | charCode==45)|!(charCode>31&(charCode<48 | | charCode>57))&&length使用普通javascript

document.getElementById('inp1')。onkeypress=verify;
console.clear();
函数isKeyValid(键){
如果(键>47和键<58)返回true
如果(键===45),则返回true;
否则返回false;
}
功能isValidCard(arr、isDash){
const last=arr[arr.length-1];
if(last.length==4&&!isDash)返回false;
else if(isDash&&last.length!==4)返回false;
else if(isDash&&arr.length==4)返回false;
否则返回true;
}
功能验证(e){
const key=e.keyCode | | e.which;
const isDash=key==45;
const val=e.target.value;
常量输入=val.split('-');
如果(!isKeyValid(键)| |!isValidCard(输入,isDash)){
返回e.preventDefault();
}
//…做点什么
}

我强烈建议您不要重新发明自行车,而是使用插件,这样可以让您做到以下几点:

     <input type="text" onkeypress="return allowNumbersAndHyphen(event)">
$(“输入”).inputmask({
面具:“9999999999999”,
占位符:“
});