JavaScript正则表达式 - 两个[az]后跟三个[0-9]

Sco*_*own 9 javascript regex string string-matching

我有一个简单的正则表达式:

[A-z]{2}[0-9]{3})$/g 在以下内容中:

regForm.submit(function(){
  if ($.trim($('#new-usr').val()).match(/([A-z]{2}[0-9]{3})$/g)) {
    alert('No');
    return false;
  }
});
Run Code Online (Sandbox Code Playgroud)

这是正确阅读的东西,如'ab123'提供警报,'ab1234'但没有.但是,'abc123'仍在抛出警报.我需要它,所以当它只有2个字母后跟三个数字时才会发出警报.

Vla*_*lad 12

试试吧/^[A-z]{2}[0-9]{3}$/g.

您需要指定需要匹配整个字符串.否则,您将获得匹配的突出显示部分:a bc123.

(我省略了()'s,因为你真的不需要这个组.)

顺便说一下,你确定你想要[A-z]而不仅仅是[A-Za-z]吗?


cod*_*ict 7

角色类[A-z]可能不是你需要的.

为什么?

字符类[A-z]匹配一些非字母字符,例如[,]等等.

JS小提琴链接来证明这一点.

这个W3school教程推荐错误.

如果只需要小写字母使用[a-z]
如果只需要大写字母使用[A-Z]
如果你需要两个使用:[a-zA-Z]

如果要匹配字符串,如果它在字符串中的任何位置有2个字母后跟3个数字,只需$从模式中删除结束锚点:

[a-z]{2}[0-9]{3}
Run Code Online (Sandbox Code Playgroud)

如果你想匹配一个字符串,如果它有2个字母后跟3个数字,没有其他任何东西都使用start anchor ^和end anchor $as

^[a-z]{2}[0-9]{3}$
Run Code Online (Sandbox Code Playgroud)