我正在努力让我的正则表达式正常运行,但我没有太多运气。
我想检查输入字符串是6个数字和1个字符(123123A),没有空格,没有短划线。即使我认为我输入了一个有效的字符串,我的正则表达也不匹配。
有谁能请指出我的问题在哪里?
var userString = "123123A";
if( /^d{6}[a-zA-Z]{1}$/.test(userString) ){
alert("Correct format");
}
else{
alert("Incorrect format");
}
答案 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]$/