Regex Match Integer Only
我目前使用的模式是:
1 2 3 4 5 | numb3r 2 3454 3.214 test |
我只想赶上2号和3454号。它对于捕捉数字字非常有用,除了边界标志
基本上,我想删除整型单词,只删除它们。
您只需要下面的regex:
1 | ^\d+$ |
与Manojlds类似,但包括可选的负数/正数:
1 | var regex = /^[-+]?\d+$/; |
编辑
如果你不想让0在前面(
1 | var regex = /^[-+]?[1-9]\d*$/; |
编辑2
正如@dmitriylezhnev指出的那样,如果您想让数字
1 | var regex = /^([+-]?[1-9]\d*|0)$/ |
如果您只想匹配空格,则可以使用lookaround:
1 | (?<=\s|^)\d+(?=\s|$) |
试试
它匹配正数、负数和零。
与
在线测试可从http://rubular.com/r/flnxvl6soq获得。
我会在其他好答案中加上一句话作为评论,但我需要更多的声誉。如有必要,一定要考虑科学记数法,即3e4=30000。这是许多语言中的默认行为。我发现以下regex可以工作:
1 2 3 4 5 | /^[-+]?\d+([Ee][+-]?\d+)?$/; // ^^ If 'e' is present to denote exp notation, get it // ^^^^^ along with optional sign of exponent // ^^^ and the exponent itself // ^ ^^ The entire exponent expression is optional |
1 | ^([+-]?[0-9]\d*|0)$ |
将接受前导"+"、前导"-"和前导"0"的数字
这只允许正整数。
1 | ^[0-9]*[1-9][0-9]*$ |
^(-+)?[1-9] [09] *$以-或+开始0或1次,然后您需要一个非零的数字(因为没有这样的东西-0或+0),然后它继续0到9之间的任何数字
在我的例子中,我需要的正整数和负整数不应该包括像01258这样的零起始数,但当然应该包括0。
1 | ^(-?[1-9]+\d*)$|^0$ |
有效值示例:"3""- 3","0""- 555","945465464654"
无效值示例:"0""1""0.7""690.7""0.0001""A",""""-""001""0.2""0.5""3","3。""- 1","+ 100","——1","- 1","- 0","00099""099"