regex - 正则表达式排除带有点和 0 位的数字
问题描述
如何修改我的正则表达式以实现此条件:
- 00.015 不应通过
- 001,07 不应该通过
- +0.05 应该通过
- 0000005 应该通过
- .0000789 应该通过
逻辑是如果在点之前有超过一个 0,则它不正确并且检查应该返回 false。
我的正则表达式:
/^-?\d*[\.\,]?\d+$/)
解决方案
您可能会使用否定前瞻断言不是 2 次零和可选数字,直到遇到,
或.
^(?!00\d*[.,])[+-]?\d*[.,]?\d+$
模式匹配:
^
字符串的开始(?!00\d*[.,])
负前瞻,断言00
后面没有可选数字和.
或,
[+-]?
匹配可选+
或-
\d*[.,]?\d+
匹配可选数字、可选.
或,
和 1+ 数字$
字符串结束
推荐阅读
- plsql - 如何将 POUPPLOV 中的选定值传递给 Oracle-APEX 中的 Select 查询
- sql - 带有患者的sql查询
- javascript - 未捕获的错误:尚未为上下文加载模块名称“express”:_
- mysql - 如何在mysql中自定义自动增量以从默认值开始
- javascript - Jumbotron 导航栏在角度应用程序中未正确显示。在我的 Angular.json 文件中也有一个黄色下划线
- javascript - 关闭路由时出现不可恢复的语法错误
- c# - 使用包含加载相关数据实体 ef Core 3.1
- python - 获取请求时获取请求错误 422
- java - Java 13 和 Java 8 中的交叉编译
- javascript - 在 vuex 中创建的音频 DOM 不是反应式的