Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
menu search
person
Welcome To Ask or Share your Answers For Others

Categories

I have a textbox, and it needs not allow the user to enter any special characters. He can enter:

  1. A-Z
  2. a-z
  3. 0-9
  4. Space.

One more condition is the first letter should be alphabetic. How can I do a JavaScript verification on each keypress?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
735 views
Welcome To Ask or Share your Answers For Others

1 Answer

add a onKeyUp="javascript:checkChar(this);" to the input box.

function checkChar(tBox) {   

    var curVal = tBox.value;

    if ( /[^A-Za-z0-9 ]/.test(curVal) ) { 

        //do something because he fails input test.

    }

}

alernatively to check JUST the key that was pressed you can grab the keycode from the event like so:

onKeyUp="javascript:checkChar(event);"

function checkChar(e) {

    var key;


    if (e.keyCode) key = e.keyCode;
    else if (e.which) key = e.which;

    if (/[^A-Za-z0-9 ]/.test(String.fromCharCode(key))) {

        //fails test

    }

}

missed the part about first char, but you can do a test on the textbox value as in the first example:

/^[A-Za-z]/.test(curVal)

or even use the second method but pass the text box as well so you can get it's full value.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
thumb_up_alt 0 like thumb_down_alt 0 dislike
Welcome to ShenZhenJia Knowledge Sharing Community for programmer and developer-Open, Learning and Share
...