Javascript正则表达式验证不起作用

时间:2014-11-10 20:56:33

标签: javascript regex

我正在努力让我的正则表达式正常运行,但我没有太多运气。

我想检查输入字符串是6个数字和1个字符(123123A),没有空格,没有短划线。即使我认为我输入了一个有效的字符串,我的正则表达也不匹配。

有谁能请指出我的问题在哪里?

var userString = "123123A";
if( /^d{6}[a-zA-Z]{1}$/.test(userString) ){
  alert("Correct format");              
}
else{
  alert("Incorrect format");                    
}

2 个答案:

答案 0 :(得分:3)

首先,您的正则表达式语法不正确,您希望使用令牌\d来匹配数字,而不是匹配文字字符d 次。你也可以从你的角色类中删除{1},这里没有必要使用。

if (/^\d{6}[a-zA-Z]$/.test(userString)) { ...

答案 1 :(得分:1)

您没有检查输入元素的值:

var userString = document.getElementById("username");

应该是

var userString = document.getElementById("username").value;

另外,就像hwnd指出的那样,你错过了模式中的反斜杠:

/^\d{6}[a-zA-Z]$/