• 保留两位小数的百分比正则表达式


    保留最多两位小数的百分比正则表达式:  /^d+.?d{0,2}%$/

    44.5%  44.66% 0.3% 5% 都正确     53   33.444%  -5.66%都错误

    有且仅保留两位小数的百分比正则表达式:  /^d+.?d{2}%$/

    44.66%正确   55  0.3% 5% 33.444%  -5.66%都错误

    Js: /^d+.?d{0,2}%$/
    java : ^\d+\.?\d{0,2}%$

    function IsPercent(){     
        var str = "0.47%";   
        alert(str);
        if(str.length!=0){
            alert(1);   
            var reg = /^d+.?d{2}%$/;
            var r = str.match(reg);     
            alert(r);
            if(r==null)    
                alert('对不起,您输入的百分比格式不正确!'); //请将“日期”改成你需要验证的属性名称!    
            }  
    }  

    excel校验器

    写入excel的是百分比,可是经过代码解析读出来就变成了小数,插入数据库需要转成百分比,所以在校验之后如果符合四位小数就设置成百分比

    保留四位的小数正则表达式:^\d+\.?\d{4}$

    /**
     * @author mashunran 功能: 保留有且仅有两位小数的百分比,带%符号
     * 44.66%  0.4422正确   55  0.3% 5% 33.444%  -5.66%都错误
     */
    @Service("百分比校验器")
    @Scope("prototype")
    public class PercentValidator extends Validator<Object> {

        // 有且仅有两位小数百分比正则表达式
        private static final String PERCENT = "^\d+\.?\d{2}%$";
        
        // 保留四位小数的小数,如0.3333(防止excel的百分比转换为了小数)
        private static final String FOURFLOAT = "^\d+\.?\d{4}$";
        
        @Override
        public void validate(Object dataLine, List<Object> readedLines, Map<String, String> nextLineCellValues) throws Exception {
            for (int i = 0; i < beanPropertys.size(); i++) {
                Object value = PropertyUtils.getProperty(dataLine, beanPropertys.get(i));
                boolean result = false;
                if (value != null && value.toString().matches(PERCENT)) {
                    result = true;
                }else if (value != null && value.toString().matches(FOURFLOAT)) {
                    // 把四位小数转换为两位小数的百分比
                    value = NumberUtil.getPercent(Double.valueOf(value.toString()));
                    PropertyUtils.setProperty(dataLine, beanPropertys.get(i), value);
                    result = true;
                }
                if(!result){
                    addError(columnHeaders.get(i)
                            + "应该为保留两位小数的百分比 !");
                }
            }
        }

        @Override
        public boolean isContinueValidate() {
            return false;
        }

    }

  • 相关阅读:
    JavaScript脚本的两种放置方式
    对象 属性 事件 方法
    媒体查询
    HTML5布局
    图像
    布局
    列表,表格,表单
    盒子
    vue.js常见面试题及常见命令介绍
    Winform读报工具
  • 原文地址:https://www.cnblogs.com/msr1019jingzi/p/5332725.html
Copyright © 2020-2023  润新知