Jquery 文本字段中的特殊字符

Jquery 文本字段中的特殊字符,jquery,html,ajax,Jquery,Html,Ajax,我在文本字段中从用户处获取身份证号码。身份证号码的格式如下 36459-6523698-5 我希望当用户自动键入36459时,会将其插入文本字段,以此类推 您可能希望对照正则表达式检查onkeyup,如果匹配,则插入一个hyhpen- 或者更好的方法是使用插件。您可能希望对照正则表达式检查onkeyup,如果匹配,则插入一个hyhpen- 或者更好的是,使用一个插件。有一个屏蔽输入插件:或者有一个屏蔽输入插件:或者你需要使用一个屏蔽文本框,设置你需要的屏蔽,而不是普通的文本框控件 例如: 您需

我在文本字段中从用户处获取身份证号码。身份证号码的格式如下

36459-6523698-5

我希望当用户自动键入36459时,会将其插入文本字段,以此类推

您可能希望对照正则表达式检查onkeyup,如果匹配,则插入一个hyhpen-


或者更好的方法是使用插件。

您可能希望对照正则表达式检查onkeyup,如果匹配,则插入一个hyhpen-


或者更好的是,使用一个插件。

有一个屏蔽输入插件:或者

有一个屏蔽输入插件:或者

你需要使用一个屏蔽文本框,设置你需要的屏蔽,而不是普通的文本框控件

例如:

您需要使用MaskedTextBox并设置所需的掩码,而不是普通的TextBox控件

例如:
如果您不想使用插件,可以执行以下操作:

   $('#card').keyup(function() {
    var card = $(this).val();
    var format = "#####-######-#";
    var i = card.length;
    var output = format.substring(0,1);
    var text   = format.substring(i)
    if (text.substring(0,1) != output) $(this).val(card + text.substring(0,1));
});
例如:


OBS:如果您不想使用插件,您必须限制maxlength,您可以这样做:

   $('#card').keyup(function() {
    var card = $(this).val();
    var format = "#####-######-#";
    var i = card.length;
    var output = format.substring(0,1);
    var text   = format.substring(i)
    if (text.substring(0,1) != output) $(this).val(card + text.substring(0,1));
});
例如:


OBS:你必须限制maxlength

这里有大量的陷阱,尤其是你会让用户感到惊讶,用户也不喜欢感到惊讶-我知道我总是不得不退格,因为我键入连字符,最后得到两个,虽然你也可以处理,但它会变得混乱、快速。如果你真的想这样做,强烈建议使用一个已经为你编写和调试过的插件,比如不支持,不知道@Krule指给你的插件。这里有很多陷阱,尤其是你会让用户感到惊讶,用户也不喜欢感到惊讶——我知道我总是不得不退格,因为我键入了连字符,最后得到了两个,虽然你也可以处理,但它会变得很混乱,很快。如果你真的想这样做,强烈建议你使用一个已经为你编写和调试过的插件,比如不支持,不知道@Krule指给你的插件。这太棒了,甚至可以正确处理复制和粘贴。如果一定要这么做的话,看起来是个不错的选择。这太棒了,甚至可以正确地处理复制和粘贴。如果一定要这么做的话,看起来是个不错的选择。问题的标签是jQueryHTML和ajax。ASP.Net和它有什么关系?@T.J Crowder,谢谢你的澄清。我确实参考了ASP.NET,因为在jquery、html、ajax或任何其他技术中都应该有类似的方法。上面Krule的回答已经证明了这一点,这个问题的标签是jQueryHTML和ajax。ASP.Net和它有什么关系?@T.J Crowder,谢谢你的澄清。我确实参考了ASP.NET,因为在jquery、html、ajax或任何其他技术中都应该有类似的方法。以上Krule的回答证明了这一点。