金额正则校验

onlyNumOnePoint(number_only) {
      //先把非数字的都替换掉,除了数字和小数点  
      number_only = number_only.replace(/[^\d.]/g, "");
      //必须保证第一个为数字而不是小数点   
      number_only = number_only.replace(/^\./g, "");
      //必须保证00.00 转为 0.00
      number_only = number_only.replace(/^0+([0-9])/, "$1");
      //保证只有出现一个小数点而没有多个小数点  
      number_only = number_only.replace(/\.{2,}/g, ".");
      //保证小数点只出现一次,而不能出现两次以上  
      number_only = number_only.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
      //保证只能输入两个小数   
      number_only = number_only.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3');
      return number_only;
    }
以下是一个用于校验中文金额正则表达式: ``` /^([壹贰叁肆伍陆柒捌玖拾佰仟万亿元角分整]|[零0])([亿]|[拾]|[佰]|[仟]){0,1}(([壹贰叁肆伍陆柒捌玖]|[零0]){1,4}|[万]){0,1}(([壹贰叁肆伍陆柒捌玖]|[零0]){1,4}|[万]){0,1}(([壹贰叁肆伍陆柒捌玖]|[零0]){1,4}|[万]){0,1}(([壹贰叁肆伍陆柒捌玖]|[零0]){1,4}){0,1}([角]|[零0]){0,1}([壹贰叁肆伍陆柒捌玖]|[零0]){0,1}([分]|[零0]){0,1}([整]|[零0]){0,1}$/ ``` 这个正则表达式可以匹配以下格式的中文金额: - 壹元整 - 陆角叁分 - 壹拾元整 - 壹佰元整 - 壹仟元整 - 壹万元整 - 壹亿元整 - 壹拾万元整 - 壹佰万元整 - 壹仟万元整 - 壹亿元整 - 壹角整 - 壹分整 - 零元整 - 零角零分 - 零点零元整 使用示例: ```js const regex = /^([壹贰叁肆伍陆柒捌玖拾佰仟万亿元角分整]|[零0])([亿]|[拾]|[佰]|[仟]){0,1}(([壹贰叁肆伍陆柒捌玖]|[零0]){1,4}|[万]){0,1}(([壹贰叁肆伍陆柒捌玖]|[零0]){1,4}|[万]){0,1}(([壹贰叁肆伍陆柒捌玖]|[零0]){1,4}|[万]){0,1}(([壹贰叁肆伍陆柒捌玖]|[零0]){1,4}){0,1}([角]|[零0]){0,1}([壹贰叁肆伍陆柒捌玖]|[零0]){0,1}([分]|[零0]){0,1}([整]|[零0]){0,1}$/; const amount1 = "壹百贰十叁元壹角伍分"; const amount2 = "贰千元整"; const amount3 = "伍拾万元整"; const amount4 = "零元整"; const amount5 = "零点零元整"; console.log(regex.test(amount1)); // true console.log(regex.test(amount2)); // true console.log(regex.test(amount3)); // true console.log(regex.test(amount4)); // true console.log(regex.test(amount5)); // true ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值