我正在寻找一个正则表达式,允许正数(如1),负数(如-1),正十进制数(0.5)和负十进制数(-0.5)。
我现在使用的是正则表达式^-?[0-9?.]*$。
这个正则表达式可以工作,但是它并不限制输入只有一个减号或小数。相反,用户可以输入---------------0.....5...---。
我需要一个正则表达式,它只允许每个符号中的一个,并在适当的地方。
我试过下面的正则表达式,但它们都不起作用--也就是说,它们都不允许输入[-]或[.]。
^-?[0-9](\.\d+)?$
^-?(?!.*-.*-.*)(?!.*\..*\..*)\d+(?:\.\d+)?$
/^-?\d+(?:\.\d+)?$/
-[0-9]*\.[0-9]+
^-?[0-9](\.\d+)?$
/^-?\d*\.?\d+$/
/^-?\d+(\.\d{1,2})?$/
看起来我的代码库/用户界面允许这样的符号的唯一方法是使用我现在拥有的正则表达式。我可以对它做一些轻微的修改来限制-和.的使用吗?
非常感谢
例如^-?[0-9?.]*$允许输入-12-12-24---333....5555
1条答案
按热度按时间pftdvrlh1#
-?
(?
是表示出现一次或零次的量词)如果数字是十进制的,
(\.\d+)?
将确保在.
之后必须有一个数字Demo here