我正在使用 AngularJS directive只允许用户输入数字、小数和减号,但我想将其更新为在开头只允许一个点和一个负号。以下是我现在拥有的,但它允许无效输入,如 --1
:
val.replace( /[^0-9.-]+/g, '');
我需要帮助修复 RegEx 以允许像 -1
这样的输入, .1
, -.1
, 0.1
, 和 -0.1
但不像--1
, 1.1.1
, 1-1
, -.
, 1.
, 1.k
, 和 k
.
我设法只允许使用以下小数点,但一直在努力只允许在开头使用负号:
val.replace(/[^\d*[0-9]\.\d*[0-9]]/g, '');
最佳答案
我认为 ^-?\d*\.?\d+$
是适用于所有测试用例的最简单的解决方案。
关于用于带一个点或不带点的有效正数和负数的 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052921/