当前位置:   article > 正文

正则表达式-限定位数的正数_正则表达式限制位数

正则表达式限制位数

今天项目上碰到一个正则表达式的需求,需要限定整数位数为不超过7位的正数,可能包含一位小数位或者只能是正数,正则表达式的写法最重要的是思路的实现,在网上并没有找到很好的解决办法,首先是正数必须大于0,其次整数位也限定了7位,小数位如果有的话也只能一位,碰到这样的正则表达式最好是拆解成三部分:

  1. 1、整数位为7位+小数位为1位的验证 (^[0-9]{1,7}\.([0-9]{1})$)
  2. 2、整数为7位不包含小数位的非负数 (^[0-9]{1,7}$)
  3. 3、大于0的正数 (^\d*[1-9]\d*$)

拆解后可以看到,3式需要和2式进行逻辑与,合并后再与1进行逻辑或运算,故可以推到出:

(?=^\d*[1-9]\d*$)(^[0-9]{1,7}$)|(^[0-9]{1,7}\.([0-9]{1})$)

其中:“|”为逻辑或,而逻辑与可以写成(?=A)(B),A和B分别为两个正则表达式。

写个性化的正则表达式需要有一个较好的思路,如何拆解和组合很重要,不太建议采用逻辑非,实现起来不易,逻辑与和逻辑或是比较好的实现方式。

本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号