【问题标题】:How can i remove special character when I input a number e.g a Cardnumber Using C# with Javascript输入数字时如何删除特殊字符,例如使用 C# 和 Javascript 的卡号
【发布时间】:2015-11-25 03:53:27
【问题描述】:

这是我的代码...当用户输入一个特别是卡号的数字时,我只需要添加一个防止特殊字符的代码。

<%@ 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>

【问题讨论】:

    标签: javascript c#


    【解决方案1】:

    我会检查模糊,而不是每次按键。当人们粘贴数据而不是仅仅在他们输入时,这也会解决问题。

    如果您的网站面向现代浏览器,您可以将输入类型设置为number,这将让浏览器为您完成一些工作(但会删除空格):

    <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: &lt;input type="text" id="cardNum" onblur="checkNum()"&gt;

    【讨论】:

    • 您好,谢谢您的回答代码...但我还有其他问题...正如您所见,当我们单击文本框时,焦点将触发,当我们单击浏览器的任何部分时焦点会消失然后我想要的是如果我在焦点文本框中输入带有特殊字符的数字,我希望每次焦点消失时特殊字符也会自动消失......我应该怎么做......什么代码可能会克服那种问题。请
    • 我想要只有特殊字符不会消失数字..请
    • 在我有x.value = 的地方,我会使用正则表达式从 x.value 中仅获取数字和有效字符。这篇文章有更多信息:stackoverflow.com/questions/1183903/…
    【解决方案2】:

    如果您想检查数字,您可以像这样检查每个按键: 在输入元素中添加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);
      }
    }
    

    每当用户在其中输入除数字以外的任何内容时都会发出警报。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-06
      • 2017-01-10
      • 2017-08-01
      • 1970-01-01
      • 2013-12-11
      • 1970-01-01
      相关资源
      最近更新 更多