用于带一个点或不带点的有效正数和负数的 JavaScript

标签 javascript regex html angularjs

我正在使用 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/

相关文章:

javascript - 从 CRM Web api 中的 OData 查询中获取选项集文本

javascript - 如何自定义AR.js相机?

javascript - 当用户在 Angular 中使用正则表达式仅输入 0 或 0.0 时如何显示错误消息?

css - 如何在斜线后换行?

jquery - 如何使布局垂直响应

javascript - 当值太大时,IE11 不会触发本地存储事件

javascript - 传出和加载页面上的页面 "Splash Screen Div"

仅当引号位于开头时,正则表达式才匹配终止引号

java - 我的正则表达式检测字符串中的 url 时出现问题?

javascript - 使用php和javascript将随机数放入txt文件中