仅JavaScript正则表达式检查编号

仅JavaScript正则表达式检查编号,javascript,regex,Javascript,Regex,我需要以下值的正则表达式: 1) .1 = False. 2) 0.1 = True. 3) 1.1245 = True. 4) 1.2. = False. 5) 1.24.35 = False. 6) 21.152 = true. 此正则表达式应检查字符串是否表示整数或仅由数字和表示小数点的单个组成 我正在使用:/^[\+\-]?\d*\.?\d+(?:[Ee][\+\-]?\d+)$/但是它需要“1.2.”作为真的如果你把第一个数字设置为无或多个\d*,你应该使用\d+,然后它将适用于你想

我需要以下值的正则表达式:

1) .1 = False.
2) 0.1 = True.
3) 1.1245 = True.
4) 1.2. = False.
5) 1.24.35 = False.
6) 21.152 = true.
此正则表达式应检查字符串是否表示整数或仅由数字和表示小数点的单个
组成


我正在使用:
/^[\+\-]?\d*\.?\d+(?:[Ee][\+\-]?\d+)$/
但是它需要
“1.2.”
作为
真的

如果你把第一个数字设置为无或多个
\d*
,你应该使用
\d+
,然后它将适用于你想要的情况

也可以看看


编辑:
^[\+\-]?\d+(\.?\d+(?:[Ee][\+\-]?\d+)?$

您的正则表达式似乎比需要的更复杂。为了满足您的要求(以数字开头,以数字结尾,最多一个点),您可以使用以下选项:

(^\d+\.\d+$)|(^\d+$)
编辑: 或者更简单:

^\d+(\.\d+)?$

如果您使用以下正则表达式

(?:\d*)\d+

它将只匹配实数

如果输入类似于
1.2.3
,它将返回
1.2


希望有帮助

你把点放错地方了这应该行

[\+\-]?[0-9]+(\.[0-9]+(?:[Ee][\+\-]?[0-9]+)?)?

您应该发布您尝试过但不起作用的正则表达式。
/^[\+\-]?\d*\.?\d+(?:[Ee][\+\-]?\d+)?$/.test('1.2')
返回
而不是
。无法复制您所说的内容。@trincot当我输入1.2时。在文本框中,并在console.log中打印,它显示为true,但当我使用1.2.1时,它显示为false。我想要1.2。应该显示false。如果您对其他解决方案持开放态度,并且不限于正则表达式,我建议
Number(x)==Number(x)
;当NaN时,它将返回false,因为
NaN===NaN
总是返回false。@RishatMuhametshin能否请您用任何示例演示一下。当我使用“12.2”时,它将返回true,如果我更改为“12.2.3”,则其工作文件将返回true。我希望当我使用“12.2”时,它应该显示为false。我不能复制这种行为。你确定错误不在周围的代码中吗?当我输入一位数时,它显示为false。它不稳定,不适用于“012.5.”。“012.5.”应返回false或?是的,它在中工作正常,但当我使用“Lower”时,它为“1.2.”返回true。var reg=/^[\+\-]?\d+(\.?\d+(?:[Ee][\+\-]?\d+)?$/console.log(reg.test((edValue.value));我只想在字符串中输入一个点。如果你把第二个点,它应该是假的。