javascript - 在粘贴事件 Javascript 中删除输入字段中的所有非数字字符

标签 javascript html

我有一个包含多个字段的 html。其中一个字段只允许输入数字。但现在我希望当用户将所有字符粘贴到该字段时,除了被剥离或删除的数字。

例如用户粘贴:

$1 234 567 -> 输入字段中的 1234567

1.234.567 -> 1234567

1,234,567 -> 1234567

等等

最佳答案

使用正则表达式。

<input id="inputBox" name="inputBox" />
<script type="text/javascript">
var inputBox = document.getElementById('inputBox');
inputBox.onchange = function(){
    inputBox.value = inputBox.value.replace(/[^0-9]/g, '');
}
</script>​

或者您可以使用计时器不断检查该字段。

<input id="inputBox" name="inputBox" />
<input id="inputBox2" name="inputBox2" />
<script type="text/javascript">
var timer = new Array();
function checkFields(el){
    var inputBox = document.getElementById(el);
    inputBox.value = inputBox.value.replace(/[^0-9]/g, '');
    clearTimeout(timer[el]);
    timer[el] = setTimeout((function(){ checkFields(el); }), 50);
};
function timerFields(el){
    timer[el] = setTimeout((function(){ checkFields(el); }), 50);
};
timerFields('inputBox');
timerFields('inputBox2');
</script>​

关于javascript - 在粘贴事件 Javascript 中删除输入字段中的所有非数字字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12050403/

相关文章:

javascript - Observables (Rx.js) 与 ES2015 生成器相比如何?

javascript - 如何让 TextMate 在编译时看到 CoffeeScript 中的 "require"表达式?

javascript - 圆形半径相交(就像圆形光标画笔)-三个js

html - 防止 Internet Explorer 10 移动版创建电话和地址链接

javascript - 在不显示 HTML WordPress 的表单上输入值

javascript - 在我的输入文本区域评论中想要 3 行而不是一行

javascript - 从 php 发送 json 到自动完成并在输入中添加数据属性

javascript - 在同位素中加载页面后的堆叠图像

javascript - Date (dateString) 在 Firefox 中返回无效日期

javascript - 如何使用 node.js 将 html 的值表添加到 mysql