JavaScript密钥代码仅允许数字和加号

cyb*_*fly 11 javascript keycode

我有这个JavaScript函数,用于强制用户只在文本框中键入数字.现在,我想修改此功能,以便用户输入加号(+)符号.怎么做到这一点?

//To only enable digit in the user input

function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
Run Code Online (Sandbox Code Playgroud)

dom*_*ri7 13

由于'+'符号的十进制ASCII代码为43,因此您可以将其添加到您的条件中.

例如 :

function isNumberKey(evt)
{
    var charCode = (evt.which) ? evt.which : event.keyCode
    if (charCode != 43 && charCode > 31 && (charCode < 48 || charCode > 57))
        return false;
    return true;
}
Run Code Online (Sandbox Code Playgroud)

这样,允许加号.


Ble*_*der 7

此代码可能有效.我加入了支持SHIFT + (equal sign)和小键盘+.

function isNumberKey(evt)
{
  var charCode = (evt.which) ? evt.which : event.keyCode;
  var shiftPressed = (window.Event) ? e.modifiers & Event.SHIFT_MASK : e.shiftKey;

  if ((shiftPressed && charCode == 187) || (charCode == 107))
  {
    return true;
  } else if ((charCode > 95) && (charCode < 106)) {
    return true;
  } else if (charCode > 31 && (charCode < 48 || charCode > 57))) {
    return false;
  } else {
    return true;
  }
}
Run Code Online (Sandbox Code Playgroud)