前端VUE金额两位小数正则校验

<script>
import{post as httpPost,get as httpGet} from "@/request";


export default{
data(){
return{
form:{
   htje:0 
},
rules: {
   htje: [
          {
            required: true,
            message: "请输入金额",
            trigger: "change"
          },
          {
            pattern: /^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$/,
            message: "请输入合法的金额数字,最多两位小数",
            trigger: "change"
          }
       ]
}
};
},
computed:{},
created(){},
methods:{}
};

</script>

最多两位数的金额正则表达式是

^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$
一、小数点前面开头
1、不以0开头:
([1-9]{1}\d*)
2、以0开头的时候可能是0,或者零点几的小数
(0{1})
所以1和2是或者的关系:
([1-9]{1}\d*)|(0{1})
二、小数点及小数位限制
如果有小数点,那么小数点后面一定要至少带一个数字;小数点可有可无
(\.\d{1,2})?
三、结合
(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?
要开头和结尾都是数字才行,要不然会匹配中间符合上面正则的字符串,加上^和$
^(([1-9]{1}\d*)|(0{1}))(\.\d{1,2})?$