javascript - 使用JS / jQuery剥离字母和符号的粘贴内容?

原文 标签 javascript jquery

我有以下代码可以处理普通类型的代码-它只允许数字输入,不允许字母,符号或空格:

self.press = function (data, event) {
        if (event.which == 0 || event.which == 32 || isNaN(String.fromCharCode(event.which))) {
            event.preventDefault(); //stop character from entering input
        } else if (event.which == 13 && self.search().length != 10) {
            toastr.warning('number must be 10 characters');
            event.preventDefault();
        } else if (event.which == 13 && self.search().length == 10) {
            // nav to /k/#
            window.location.replace("/k/" + self.search());
        }
        return true;
    };


但是我可以将字母和符号粘贴到该字段中。如何从粘贴的内容中剥离任何非数字?

最佳答案

您可以使用输入字段的oninput事件来侦听内容的更改,并相应地进行处理:



$("#field").on('input', function(v){
    var val = $(this).val();
    val = val.replace(/\D/g, '');
    $(this).val(val);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<input id="field" />





注意:oninput事件仅在IE 9及更高版本中受支持。要支持较旧的浏览器,可以使用setInterval反复检查输入内容,或者可以尝试this shim

相关文章:

javascript - 并非在所有浏览器中都使用jQuery更新CSS转换

javascript - 如何使我的php表从另一个表

javascript - Flickr Json调用API

javascript - 对一个对象数组中的两个值求和,然后插入另一个对象数组中

javascript - 如何动态地在特定位置添加列?

javascript - 匹配正则表达式的网址并非始终有效

javascript - 如何通过jQuery的.ajax()方法在GET请求中发送包含斜杠的参数?

javascript - 如何在Yii&Ajax中加载文章而不重新加载页面

jquery - 如果这是通过jQuery禁用元素的方式,如何重新启用它?

javascript - 如何使用javascript或jquery从url参数获取值