Javascript函数,它限制数字函数但允许使用字母数字值

时间:2013-01-31 09:00:38

标签: javascript regex

我遇到了问题......这是我的代码,它限制了特殊字符,但我想要一个限制特殊字符,数字但允许字母数字值的逻辑... 例如:

  • 有效:a1,4r,aa。
  • 无效:w @,12,@!。

    功能检查(e)

{

var keynum;
var keychar;
var numcheck;
if(window.event) // IE
{
    keynum = event.keyCode;
}
else if(e.which) // netscape/Firefox/opera
{
    keynum = e.which;
}

//condition for backspace(8) Key
if(keynum != 8)
{
    keychar = String.fromCharCode(keynum);
    numcheck = /[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*/;
    return numcheck.test(keychar);
}
else
{
    return true;
}

}

    User id : <input type="text" id="txtname" name="txtname" onkeypress="return check(event)"/>

3 个答案:

答案 0 :(得分:0)

SO本身的字母数字验证:

var reg_password1 = 'tes123';
var letters = /^[a-zA-Z0-9]+$/;

var result = letters.test(reg_password1);

alert(result);

See this question

Fiddle not by me

答案 1 :(得分:0)

我认为这是你需要的正则表达式:

^[A-Za-z0-9]*[A-Za-z]+[A-Za-z0-9]*$

它匹配零个或多个字母数字字符,后跟至少一个字母,后跟零个或多个字母数字字符。

因此它允许aa0r

并且不允许99或包含非字母数字字符的序列。

您的问题是只允许使用字母数字字符。您的示例应该允许 aa。。如果是这样,请使用:

^[A-Za-z0-9.]*[A-Za-z]+[A-Za-z0-9.]*$

它允许.以及至少一个字母,例如 .aa aa。

检查如下:

numcheck.test(inputString);

其中inputString是匹配的a23we.aa,或者12k@不匹配的输入< / p>

numcheck/[A-Za-z0-9.]*[A-Za-z]+[A-Za-z0-9.]*/

答案 2 :(得分:0)

我相信这会满足你的需要。

[a-zA-Z0-9]*[a-zA-Z]+[a-zA-Z0-9]*

这将仅限制12,13等数字,现在允许任何特殊字符,并根据需要,允许包含字母和数字的单词,如asd12,12asd12,12asd等。