正则表达式检测前导零并检查0到12位数的长度

时间:2010-02-04 22:18:45

标签: javascript regex

您好我有一个javascript函数,检查0到12长度的有符号整数,我还想看看是否有像0012这样的前导0应返回false。

function sInteger0to12(str) {
    str = str.replace(/^\s+|\s+$/g, '');
    return /^[-+]?\d{0,12}$/.test(str);
}

任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:6)

我假设以下内容应该匹配:

1
+1
-1
0
-123456789012
<empty>

这些应该失败:

-
+
01
-01
1234567890123
00
+0
-0

如果您不同意我上面的决定,请告诉我,我会尝试修复正则表达式。

这是你可以使用的正则表达式:

/^([-+]?[1-9]\d{,11}|0)?$/

答案 1 :(得分:1)

像这样:

 /^[-+]?[1-9]\d{0,11}$/

您需要单独检查'0'

答案 2 :(得分:0)

你需要涵盖三个案例

  1. 一个空字符串
  2. 单个0
  3. 没有零填充的1到12位数字
  4. 这些案例等同于

    1. ^ $
    2. ^ 0 $
    3. ^ [+ - ] [1-9] \ d {0,11} $
    4. 加起来

      ^()|(0)|([+-]?[1-9]\d{0,11})$
      

答案 3 :(得分:0)

这应该有所帮助:

/(^0$)|(^[+-]?[1-9]\d{0,11}$)/