我目前正在使用该模式:
\b\d+\b
,使用以下条目对其进行测试:
numb3r
2
3454
3.214
test
我只希望它捕获 2 和 3454。它非常适合捕获数字单词,除了边界标志
(\b)
包括 "."
作为单独单词的考虑因素。我尝试排除句点,但在编写模式时遇到困难。
基本上我想删除整数单词,并且只删除它们。
您想要的只是以下正则表达式:
^\d+$
类似于 manojlds 但包括可选的负/正数:
var regex = /^[-+]?\d+$/;
编辑
如果你不想前面有零(
023
无效),可以这样写:
var regex = /^[-+]?[1-9]\d*$/;
编辑2
正如@DmitriyLezhnev指出的,如果你想让数字
0
本身有效,但在其他数字前面仍然无效(例如:0
有效,但023
无效)。然后你就可以使用
var regex = /^([+-]?[1-9]\d*|0)$/
如果您想要匹配的只是空格,则可以使用环视:
(?<=\s|^)\d+(?=\s|$)
我会将其添加为对其他好的答案的评论,但我需要更多的声誉才能这样做。如有必要,请务必允许使用科学记数法,即 3e4 = 30000。这是许多语言的默认行为。我发现以下正则表达式可以工作:
/^[-+]?\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
这只允许正整数。
^[0-9]*[1-9][0-9]*$
这个解匹配整数:
/^(0|-*[1-9]+[0-9]*)$/
^([+-]?[0-9]\d*|0)$
将接受带前导“+”、前导“-”和前导“0”的数字
尝试
/^(?:-?[1-9]\d*$)|(?:^0)$/
。
它匹配正数、负数以及零。
它与
00
、-0
、+0
、-00
、+00
、01
等输入不匹配。
^(-+)?[1-9][0-9]*$ 以 - 或 + 开始 0 或 1 次,然后你想要一个非零数字(因为不存在 -0 或 +0 这样的东西),然后它继续以 0 到 9 之间的任何数字
这在我需要正整数和负整数的情况下有效,这些整数不应该包括像 01258 这样的从零开始的数字,但当然应该包括 0
^(-?[1-9]+\d*)$|^0$
有效值示例: “3”, “-3”, “0”, “-555”, “945465464654”
无效值的示例: “0.0”, “1.0”, “0.7”, “690.7”, “0.0001”, “一个”, "", “”, “.”, “-”, “001”, “00.2”, “000.5”, “.3”, “3.”, “-1”, “+100”, “--1”, “-.1”, “-0”, “00099”, “099”