鍍金池/ 問答/HTML5  Java  HTML/ 禁止非數(shù)字輸入,但搜狗輸入法中文狀態(tài)下仍可以輸入字母e

禁止非數(shù)字輸入,但搜狗輸入法中文狀態(tài)下仍可以輸入字母e

<input type='number' onkeypress='return( /[d]/.test(String.fromCharCode(event.keyCode) ) )' />
該表達(dá)式在Chrome瀏覽器、搜狗輸入法中文輸入狀態(tài)下,仍然可以輸入字母e。字母e可能在數(shù)學(xué)上有特殊的數(shù)值,請問如何禁掉e的輸入?

回答
編輯回答
浪婳

keypress事件的兼容性不好,不建議監(jiān)聽這個事件。
clipboard.png

可以監(jiān)聽input事件,然后用正則判斷字符串是否合法:

var inputer = document.getElementById("inputer");

var lastValue = '';
inputer.addEventListener("input", function(e) {
  if (!/^\d*$/.test(e.target.value)) {
    this.value = lastValue;
  }
}, false);

DEMO:
https://codepen.io/CodingMonk...

2018年1月24日 00:48
編輯回答
選擇

[0~9]數(shù)字
[0~9\.]小數(shù)
[0~9\.\-]小數(shù)負(fù)數(shù)

2017年2月24日 05:40