在Javascript中允许一些像dash这样的特殊字符

时间:2015-06-12 08:24:27

标签: javascript regex

我正在使用javascript来禁止用户在文本框中使用特殊字符。但我想允许用户在文本框中使用短划线( - )。请更新我的功能。

禁止允许用户使用特殊字符

 function alpha(e) {
            var k;
            document.all ? k = e.keyCode : k = e.which;
            return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));
        }

仅允许数字

function isNumberKey(evt) {
            var charCode = (evt.which) ? evt.which : evt.keyCode;
            if (charCode != 46 && charCode > 31
              && (charCode < 48 || charCode > 57))
                return false;

            return true;

允许在第一个函数中使用短划线( - )的键码是什么?

2 个答案:

答案 0 :(得分:1)

这是一个javascript keyCode列表:http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes

Dash KeyCode为189( - 来自键盘)或109( - [减号 - 从键盘中减去])。

Dash的CharCode为45。

以下是对KeyCode&amp; Key的描述。 CharCode表示:keycode and charcode

在这里你可以测试keydown,keypress,keyup事件。 http://www.quirksmode.org/js/keys.html

因此,如果您在keydown事件上应用alpha函数,则必须相应地更改它:

function alpha(e) {
            var k;
            document.all ? k = e.keyCode : k = e.which;
            // UPDATED - is CHARCODE
            return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57) || k == 45);
        }

取决于你是想要减号还是破折号或只是其中之一。

答案 1 :(得分:0)

Dash密钥代码为189。

但您的代码使用char代码更难维护,您应该考虑使用命名常量代替数字。