JavaBeginner
JavaBeginner

Reputation: 115

How do I allow user to enter only underscore, space, alphabets and numbers in textbox

I have the following jQuery.

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

It accepts any character except space when the length is 0. How do I allow user to enter only a-z A-z 0-9 _ and space(in between characters)?

Upvotes: 1

Views: 4260

Answers (3)

Tanmay Patel
Tanmay Patel

Reputation: 1810

Try This...

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;
    });
});

Upvotes: 0

Praveen
Praveen

Reputation: 56509

Why don't you try it in regex

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

Update: Try this

$(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

Upvotes: 3

Vaibs_Cool
Vaibs_Cool

Reputation: 6156

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();
            }
    }

Something like would help you ..Try this and let me know

Upvotes: 1

Related Questions