求一个js正数正则表达式

0以上的数都通过校验

阅读 7.9k
3 个回答

额 这个问题我是不是可以理解为 但凡遇到1-9任何一个数字,都判定为真.. 所以 /[1-9]/ 就够了

承接上方逻辑优化了正则
/^(?!-)(.*)?[1-9]/g

除了负号以外只要匹配到大于0的任何一个数字就判定为这个数大于0

然后做了反向预查 ‘-’ 负号,也就是负号后面匹配到的正则都会被删除掉, 并且通过 ^ 强制要求开头的符号不能是 '-' 那么就完成了

公式

  • /(^\d+$)|(^\d+\.\d+$)/

思路

  • 数字开头,任意个,数字结尾
  • 或者
  • 数字开头,任意个,小数点,任意个数字,数字结尾

正则好帮手

image.png

补充

  • 看了楼上的回复.想起了更简单的写法
  • /^\d+\.?\d+$/
  • 思路 数字开头,任意个,可选的小数点,任意个数字,数字结尾

var reg = /^[1-9]\d*$/

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题