javascript - 正则表达式接受带或不带小数的 15 位数字
问题描述
我有一个已经在系统中使用的正则表达式
/^(?![.,])(?!.*[.,]$)[0-9.,](?!.*[.,]{2}).*$/
我需要验证相同的接受 15 位数字。用户可以输入小数,也可以不输入。我无法理解如何处理这种情况。
我尝试像这样添加限制
/^(?![.,])(?!.*[.,]$)[0-9.,](?!.*[.,]{2}).{1,15}$/
有人可以帮助我了解如何处理小数,并且仍然能够检查是否输入了 15 位数字作为最大长度。超过 15 位应该会引发错误,并且应该可以接受更少。
解决方案
您列出的要求的基本答案(最多 15 位数字,最多一位小数,如果适用,小数点前后至少一位数字)将是:
^(?=(?:\d\D*){1,15}$)\d+(?:[.,]\d+)?$
您匹配字符串的完整长度两次:一次以确保您最多有 15 位数字(可能散布非数字),一次以确保您只有数字,并且最多有一个小数点/逗号。
推荐阅读
- python - 训练停留在自定义数据集上的简单 Pytorch 模型上
- c# - T4 模板中的继承
- python - Python Matplotlib:向子图添加水印
- amazon-web-services - 如何创建在 appsync 中响应无效的“突变”?
- html - 如何在移动设备的导航栏中显示两个不同的图标
- powershell - 如何在 Powershell New-Alias 中传递所有标志?
- javascript - 在 MERN 堆栈中的两个反应组件之间传递数据
- laravel - Laravel 更改请求值
- java - Spring-boot 缓存中的批量缓存支持
- reactjs - 如何在材料 ui 版本 5 中使用 react-admin