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]
吗?
角色类[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)