2016-07-18 48 views
2

我需要让下面的整数:允许在正则表达式负整数

-1, 0, 1, 2, 3, 4 and so on 

这是我努力的正则表达式:

/^[-0-9]+$/gm 

下面是结果:

-1 //true, its fine 
-2 //true, should be false 
- //true, should be false 

我如何允许范围从-1到任何+ve integer

+0

为什么你需要整数的正则表达式,会不会更合适? –

+0

可以将这样的整数作为字符串的一部分,比如'someTe232xt-1kk33'? – RomanPerekhrest

+0

@ l'L'l输入也可以是字符串。 – Shaharyar

回答

3

你可以使用这个表达式:

/^(?:-1|\d+)$/gm 

RegEx Demo

交替使用符合我们既-1或其他任何积极的数字即\d+在给定的输入。

+1

不确定。既然你打了我15秒,我收回我的答案:) –

+0

你正则表达式也接受'001'。 –

+0

@JoséCastro:'001'也是一个正数 – anubhava

0

更精确的和普遍的解决方案:

^(?:-?[1-9]\d*|0)$ 

它可以防止-0,001和其它这样的变体。 添加标记g用于全局搜索和/或m用于通过多行文字进行搜索。