当我使用C#和Javascript输入数字时,我如何删除特殊字符,例如卡号
本文关键字:删除 特殊字符 何删除 Javascript 输入 数字 | 更新日期: 2023-09-27 18:24:28
这是我的代码。。。我只需要添加一个代码,当用户把一个数字特别是卡号放进去时,防止出现特殊字符。
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
function cc_onchange() {
var visa_checkcard = /^4[0-9]{12}(?:[0-9]{3})?$/i;
var master_checkcard = /^5[1-5][0-9]{14}$/i;
var amex_checkcard = /^3[47][0-9]{13}$/i;
var jcb_checkcard = /^(?:2131|1800|35'd{3})'d{11}$/i;
var diners_checkcard = /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/i;
if (!visa_checkcard.test(document.getElementById('ccform_cardnumber_TB').value)) {
if (!master_checkcard.test(document.getElementById('ccform_cardnumber_TB').value)) {
if (!amex_checkcard.test(document.getElementById('ccform_cardnumber_TB').value)) {
if (!jcb_checkcard.test(document.getElementById('ccform_cardnumber_TB').value)) {
if (!diners_checkcard.test(document.getElementById('ccform_cardnumber_TB').value)) {} else {
document.getElementById("ccform_cardtype_TB").value = "diners";
}
} else {
document.getElementById("ccform_cardtype_TB").value = "jcb";
}
} else {
document.getElementById("ccform_cardtype_TB").value = "amex";
}
} else {
document.getElementById("ccform_cardtype_TB").value = "mastercard";
}
} else {
document.getElementById("ccform_cardtype_TB").value = "visa";
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="Label1" runat="server" Text="Card No."></asp:Label>
<asp:TextBox ID="ccform_cardnumber_TB" runat="server" onchange="cc_onchange();"></asp:TextBox>
<%--<asp:DropDownList ID="ccform_cardtype_TB" runat="server"> <asp:ListItem Value="visa">VISA</asp:ListItem> <asp:ListItem Value="mastercard">Mastercard</asp:ListItem> <asp:ListItem Value="amex">American Express</asp:ListItem> <asp:ListItem Value="jcb">JCB</asp:ListItem> <asp:ListItem Value="diners">Diners</asp:ListItem> </asp:DropDownList>--%>
<asp:Label ID="Label2" runat="server" Text="Card Type"></asp:Label>
<asp:TextBox ID="ccform_cardtype_TB" runat="server"></asp:TextBox>
</div>
</form>
</body>
</html>
我会检查模糊,而不是每次按键。当人们粘贴数据时,而不仅仅是在键入数据时,这也会引起问题。
如果你的网站以现代浏览器为目标,你可以将输入类型设置为数字,这将让浏览器为你做一些辅助工作(但会删除空格):
<input type="number" />
function checkNum() {
var x = document.getElementById("cardNum");
if(isNaN(x.value)){
// Throw error or alert or whatever
x.value = "";
}
}
Enter your number: <input type="text" id="cardNum" onblur="checkNum()">
如果你想检查数字,你可以这样检查每个按键:在输入元素中添加onkeyup="test_key(this)"
和函数
function test_key(e){
// check the last character entered
var val = parseInt(e.value[e.value.length-1]);
// if it isn't a digit: alert
if(isNaN(val)){
alert(e.value);
}
}
每当用户放入除数字以外的任何其他内容时都会发出警报。