我写了一个javascript函数,只允许这样的数字,逗号,点

function isNumber(evt) {
              var theEvent = evt || window.event;
              var key = theEvent.keyCode || theEvent.which;
              key = String.fromCharCode(key);
              var regex = /^[0-9.,]+$/;
              if (!regex.test(key)) {
                  theEvent.returnValue = false;
                  if (theEvent.preventDefault) theEvent.preventDefault();
              }

}

但是,如果我想删除任何数字形式的文本框..退格键不起作用。然后我将正则表达式代码更改为“var regex = /^[0-9.,BS]+$/;

我仍然无法在textbox中使用退格键。即使我不能在文本框中使用左右键,这是我做错了吗?谁能帮忙...谢谢。 (当我在正则表达式中使用“BS”而不是退格键时,在文本框中允许使用“B”,“S”字符。)

最佳答案

试试下面的代码:

function isNumber(evt) {
          var theEvent = evt || window.event;
          var key = theEvent.keyCode || theEvent.which;
          key = String.fromCharCode(key);
          if (key.length == 0) return;
          var regex = /^[0-9.,\b]+$/;
          if (!regex.test(key)) {
              theEvent.returnValue = false;
              if (theEvent.preventDefault) theEvent.preventDefault();
          }
}

关于JavaScript仅允许数字,逗号,点,退格键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21374605/

10-09 17:47