如何允许用户在文本框中仅输入下划线,空格,字母和数字

时间:2013-09-04 10:41:18

标签: jquery html

我有以下jQuery。

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

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

3 个答案:

答案 0 :(得分: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]/, ''))
        }
    });
});

Regexplained here

JSFiddle

答案 1 :(得分: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();
            }
    }

像你这样的东西可以帮助你......尝试一下,让我知道

答案 2 :(得分: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;
    });
});