javascript - 正则表达式不匹配字符串

标签 javascript regex

我正在尝试找出以下正则表达式:

/^[0-9]{2}-[0-9]{2,3}[a-zA-z]{0,1}/g

在我的例子中。
以下应通过:00-45、00-333、33-333a、55-34a 以下应该失败:33-3333、22-22dd、22-2233

这是我的截图:

enter image description here

但是应该失败的一次并没有失败。在我的 javascript 代码中,我只是做了一个测试:

var regExp = new RegExp(exp);
if(regExp.test(test1))
    alert('pass');
else
    alert('fail');

有没有办法让正则表达式测试整个字符串?示例 33-3333 由于 33-333 而通过,但由于还有另一个 3 我希望它失败,因为第四个 3 将根据字符规则进行测试?

最佳答案

  1. 您的输入中缺少结束 anchor $
  2. 字符类中的
  3. A-z 也会匹配不需要的字符,您实际上需要 A-Z
  4. {0,1} 可以缩短为 ?

试试这个正则表达式:

/^[0-9]{2}-[0-9]{2,3}[a-zA-Z]?$/

RegEx Demo

关于javascript - 正则表达式不匹配字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37078221/

相关文章:

JavaScript 正则表达式 : All matches of a given format up until pattern

javascript - 使用正则表达式操作字符串

javascript - 从服务器发送媒体流到客户端

javascript - 有没有办法使用包含变量名称的字符串来访问 javascript 变量?

JavaScript 单行 'if' 语句 - 最佳语法,这个替代方案?

javascript - 正则表达式 - 如何反转为 NOT

php - 从 Wordpress 标题返回文本的简单正则表达式 - qtranslate 插件

javascript - 如何在谷歌地图图表中使用动态图标

javascript - 记录选定的文本位置给出错误的结果

ruby - Ruby 中正则表达式后的字母