所有数字的正则表达式但没有零

时间:2014-12-22 08:18:25

标签: javascript regex

我试图实现某种计算器,并且我已经获得了一些小的Javascript(AngularJS)验证。 只允许用户在输入

中写入有效的数字

目前我的正则表达式如下:

/^\d+[,\.]?\d*$/

我只获得了数字,但它也接受了一个零(并且禁止使用零点)和数字开头处的零,就像" 00098"。

有没有办法告诉正则表达式接受" 0"只有当它后跟一个"。"或","如果它被1-9的数字所包围?

有效示例:

111.19282
14,282
19

无效的例子:

000100
00.001
0

无效的示例:其中包含字母的所有内容

非常感谢你的帮助。

3 个答案:

答案 0 :(得分:3)

好像你想要这样的东西,

^(?!0)\d+([,.]\d+)?$

开头的否定前瞻(?!0)声称字符串在第一个字符串中不会包含0

DEMO

如果您想允许0.12

等数字,请使用以下正则表达式
^(?!0(?:\d|$))\d+([,.]\d+)?$

DEMO

答案 1 :(得分:1)

^(?!0(?!\.))\d+([,\.]\d+)?$

你可以尝试一下。参见演示。

https://regex101.com/r/vN3sH3/54

答案 2 :(得分:-1)

试试这个:

^[1-9\.\,]+$

Live Demo