首页 > 解决方案 > 正则表达式排除带有点和 0 位的数字

问题描述

如何修改我的正则表达式以实现此条件:

逻辑是如果在点之前有超过一个 0,则它不正确并且检查应该返回 false。

我的正则表达式:

/^-?\d*[\.\,]?\d+$/)

标签: regex

解决方案


您可能会使用否定前瞻断言不是 2 次零和可选数字,直到遇到,.

^(?!00\d*[.,])[+-]?\d*[.,]?\d+$

模式匹配:

  • ^字符串的开始
  • (?!00\d*[.,])负前瞻,断言00后面没有可选数字和.,
  • [+-]?匹配可选+-
  • \d*[.,]?\d+匹配可选数字、可选.,和 1+ 数字
  • $字符串结束

正则表达式演示


推荐阅读