您好我有一个javascript函数,检查0到12长度的有符号整数,我还想看看是否有像0012这样的前导0应返回false。
function sInteger0to12(str) {
str = str.replace(/^\s+|\s+$/g, '');
return /^[-+]?\d{0,12}$/.test(str);
}
任何帮助将不胜感激。
答案 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)
你需要涵盖三个案例
这些案例等同于
加起来
^()|(0)|([+-]?[1-9]\d{0,11})$
答案 3 :(得分:0)
这应该有所帮助:
/(^0$)|(^[+-]?[1-9]\d{0,11}$)/