<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})?$
