正十进制数的正则表达式

时间:2018-05-03 07:52:43

标签: javascript regex

我正在尝试使用javascript创建一个正则表达式,用于反应应用程序,允许使用负数和正数十进制数,不允许输入任何字符。

我一直在寻找示例,阅读文档,但我不知道如何制作它。

这是必须要做的事情:

允许负数和正数十进制数,我发现了这个:

var re = new RegExp("^[+-]?[0-9]{0,900}(?:\.[0-9]{0,900})?$");

但是我可以写一个角色并向我显示真实并添加其他角色并向我显示虚假。 console.log(re.test(value));

如果是十进制,则从零开始显示零(0.232)并且不允许此(.232)

不允许写字符,我看过这个/^\d*$/

2 个答案:

答案 0 :(得分:2)

查看有关RegExp的文档,它指出在使用构造函数时,正常的字符串转义规则(在包含在字符串中时带有\的特殊字符之前)是必需的。

然后你的正则表达式将匹配一个点,该点可以匹配任何字符,例如a有效,因为前面的[0-9]{0,900}匹配零 - 900次。

你的正则表达式会变成:

var re = new RegExp("^[+-]?[0-9]{0,900}(?:\\.[0-9]{0,900})?$");

要匹配不应以点开头的负十进制数和正十进制数,可以使用:

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

哪个匹配字符串^的开头,可选的[+-]?,一个或多个数字[0-9]+,后跟可选部分,该部分将匹配一个点和一个或多个数字{ {1}}然后是字符串(?:\.[0-9]+)?的结尾。

$

var re = new RegExp("^-?[0-9]+(?:\\.[0-9]+)?$");

答案 1 :(得分:0)

我用这个:

^-?[0-9]\d*(\.\d+)?$
  • 只有数字
  • 正面和负面
  • 不允许.232