1

我有以下 jQuery。

    $(document).ready(function() {
$('#name').bind('keypress', function(e) {
    if($('#name').val().length == 0){
        if (e.which == 32){//space bar
            e.preventDefault();
        }
    }
    }); 
});

当长度为 0 时,它接受除空格以外的任何字符。如何允许用户仅输入 az Az 0-9 _ 和空格(在字符之间)?

4

3 回答 3

3

你为什么不试试regex

/[^A-Za-z0-9_\s]/

更新: 试试这个

$(document).ready(function () {
    $('#name').bind('keypress', function (e) {
        // Filter non-digits from input value.
        if ($('#name').val().length == 0) {
            if (e.which == 32) { //space bar
                e.preventDefault();
            }
        } else {
            $(this).val($(this).val().replace(/[^A-Za-z0-9_\s]/, ''))
        }
    });
});

在这里重新解释

JSFiddle

于 2013-09-04T10:53:56.487 回答
1
function EnableAlphaNumericSpecial(event) {
        // 65 - 90 = smaller case 'a',  32 - space, 48 - 58 - numeric - (0 - 9),  39 - ',35-#, 45- -

        var keyCode = event.charCode;               

        if (keyCode == undefined) 
                keyCode = event.keyCode;

        if ((keyCode >= 65 && keyCode <= 90) || (keyCode >= 97 && keyCode <= 122) || (keyCode >= 48 && keyCode <= 57) || (keyCode == 32) || (keyCode == 39) || (keyCode == 45) || (keyCode == 35) || (keyCode == 0))
                event.returnValue = true;
            else {    //check if it is a IE browser or Firefox browser.
                if (window.event)
                    event.returnValue = false;
                else
                    event.preventDefault();
            }
    }

类似的东西会帮助你..试试这个,让我知道

于 2013-09-04T10:48:03.063 回答
0

尝试这个...

jQuery(document).ready(function($){
    $('#name').keypress(function (e) {
        var regex = new RegExp("^[0-9a-zA-Z_\. ]+$");
        var str = String.fromCharCode(!e.charCode ? e.which : e.charCode);
        if (regex.test(str)) {
            return true;
        }
        e.preventDefault();
        return false;
    });
});
于 2018-02-08T04:52:34.237 回答