Java Script Regex ^ [^ 0] \ d {1,4} $

时间:2015-06-05 08:05:23

标签: javascript regex

我希望使用JavaScript中的正则表达式匹配1到4位且不以0开头的数字。我试过了:

^[^0]\d{1,4}$

但这不起作用。

JavaScript中{1,4}有问题吗? 它应该检查数字是否匹配1到4次,不应该吗?

3 个答案:

答案 0 :(得分:7)

为什么你的正则表达式不起作用

^[^0]\d{1,4}$表示除0后跟1到4位数之外的任何内容。因此,以下内容将匹配:

  • A6789
  • Z0

解决方案

如果您想要任何1到4位数字,但没有您想要的0:

^(?!0)\d{1,4}$

这将匹配:

  • 1234
  • 5
  • 99

但不是:

  • 0123
  • 005
  • 12345
  • Z123

解决方案的工作原理

(?!0)是一个否定前瞻,它断言字符串不以包含的模式开头,在本例中为0

答案 1 :(得分:6)

您的正则表达式不正确。 Javascript没有问题。

这是你想要的正则表达式:

^[1-9]\d{0,3}$

基本上:

  • [1-9]匹配任何非0
  • 的数字
  • \d{0,3}最多可匹配3个数字,从0到9

你拥有的正则表达式将匹配这些:

  • Z000
  • .123
  • -111
  • ...

答案 2 :(得分:2)

请向我们展示不起作用的代码。

这就是你现在正在做的事情:

  • 一个不是0
  • 的字符
  • 十进制的一到四个字符 编号

所以你可以产生5位数。你必须纠正这一点。如果您提供代码和上下文,我们可以为您提供帮助。