带有字母数字的文本框检查javascript

时间:2009-06-04 12:25:03

标签: asp.net javascript

我有一个文本框,它不需要允许用户输入任何特殊字符。他可以输入:

  1. A-Z
  2. A-Z
  3. 0-9
  4. 空间。
  5. 另一个条件是第一个字母应该是字母。 如何在每个按键上进行JavaScript验证?

5 个答案:

答案 0 :(得分:9)

添加onKeyUp =“javascript:checkChar(this);”到输入框。

function checkChar(tBox) {   

    var curVal = tBox.value;

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

        //do something because he fails input test.

    }

}

alernatively检查按下的键,你可以从事件中获取键码,如下所示:

的onkeyup = “JavaScript的:checkChar(事件);”

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

    }

}

错过了关于第一个字符的部分,但你可以像第一个例子那样对文本框值进行测试:

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

甚至使用第二种方法,但也传递文本框,这样你就可以获得它的全部价值。

答案 1 :(得分:1)

此函数将检查为其指定的字符串:

function checkvalue(value) {
  return value.match( /[A-Za-z][A-Za-z0-9 ]*/ );
}

然后,您可以在onkeypress事件中使用它,传入当前值。

答案 2 :(得分:0)

你应该在文本框的onkeydown事件处理程序中检查按下的键,如果它不符合条件,那么来自处理程序的return false。使用keyup将不允许您阻止在文本框中实际输入char。

答案 3 :(得分:0)

我认为您不应该检查每个按键,这对用户来说可能非常烦人。

只要在丢失焦点或提交时检查输入。

为此,您可以使用正则表达式并使用此模式:

 `/[a-z]{1}[a-z0-9]/i`

您还可以查看JQuery Validation Plugin

答案 4 :(得分:0)

既然我们有HTML5,您甚至不需要使用JavaScript。您可以使用pattern属性。

<input type="text" pattern="[A-Za-z][A-Za-z0-9 ]*" title="Description of format" />

pattern属性应包含定义格式的regular expressiontitle应该包含对该格式的可读描述。

然后在验证时,浏览器会根据浏览器勾勒出红色字段和/或显示一条消息,说明您对格式的描述。

本教程详细介绍:HTML5 Input Validation Tutorial