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

时间:2014-12-11 16:49:15

标签: 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;
    };

但我可以在字段中粘贴字母和符号。如何从粘贴的内容中删除任何非数字?

1 个答案:

答案 0 :(得分:1)

您可以使用输入字段的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" />
&#13;
&#13;
&#13;

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