自己也能手动写正则匹配任意格式的金额了

264 阅读1分钟

一、什么是整数?

整数是正整数、0、负整数的集合

二、正则字符中的含义(部分)

 $:匹配输入的结束
 *: 匹配前一个表达式0次或多次。等价于{0,}
 +: 匹配前一个表达式1次或多次。等价与{1,}
 ?: 匹配前一个表达式0次或1次。等价于{0,1}
 x|y: 匹配'x'或者'y'
 {n,m}: 匹配前面的字符至少n次,最多m次
 [xyz]:匹配方括号中的任意字符

三、实际场景分析及运用

实际需求中的整数不一定是整数,有可能是需要保留指定小数位数0的“整数”,或小数位数0无限制的“整数”,只要经过Number()处理后数值仍满足整数即可。

1. 整数(没有任何小数点0var reg = /(^(0){1}$)|(^((-)?[1-9])([0-9]+)?$)/
   
2. 正整数和0(没有任何小数点0var reg = /(^(0){1}$)|(^([1-9])([0-9]+)?$)/
   
3. 整数(可以有无数位小数0结束)
   var reg = /(^(-)?[1-9]([0-9]*)?(\.[0]+)?$)|(^[0](\.([0]+))?$)/ 
   
4. 正整数和0(可以有无数位小数0结束)
   var reg = /(^[1-9]([0-9]*)?(\.[0]+)?$)|(^[0](\.([0]+))?$)/   ——>与第3点的区别在于去除(-)?而已
   
5. 整数(所有数字包括0必须以两位小数0结束)
   var reg = /(^(-)?[1-9]([0-9]*)?(\.[0]{2}){1}$)|(^[0](\.([0]{2})){1}$)/
   
6. 整数(所有数字必须以两位小数0结束,但是0特殊处理可以没有小数或只能有两位小数,即00.00均满足)
   var reg = /(^(-)?[1-9]([0-9]*)?(\.[0]{2}){1}$)|(^[0](\.([0]{2}))?$)/
  1. 步骤拆分说明(主要分正负整数和0的两种情况处理)

    var reg = /(^(-)?1-9?(.[0]+)?)([0]((˙[0]+))?)|(^[0](\.([0]+))?)/ .png

  2. 正则图解

    var reg = /(^(-)?1-9?(.[0]+)?)([0]((˙[0]+))?)|(^[0](\.([0]+))?)/
    image (1).png 附址:正则在线解析 regexper.com/#