Js 和 Java中的 正则表达式:
项目当中遇到需要使用正则表达式的问题
需求比较简单,如下:
判断金额在1~100范围之内,可以为小数,且保留小数点后三位。
开发环境:
java、angular | js
举例说明:
后端
//比较三个字符串:
String str = "999";
String str1 = "99.9999";
String str2 = "99.999";
//以上三个字符串只是举例说明,正常开发一般是方法中传过来的对象活参数
//正则表达式:
String regExp = "^0\\.\\d[1-9]$|^0\\.[1-9]\\d$|^[1-9](\\.\\d{1,2})?$|^[1-9]\\d(\\.\\d{1,3})?$";
//表达式特殊处理:
Pattern p = Pattern.compile(regExp);
//处理后的正则表达式与字符比较
Matcher m = p.matcher(str2);
//判断比较结果 : str与 str1 均不符合正则条件
if(!m.matches()){
throw new AppException("erro messages");
} else {
XXXDao.insert(str2);
}
前端:
//< input />
<input type="number" name="percent" [(ngModel)]="entity.percent" #name="ngModel" class="form-control" (blur)="blur()">
//js
blur(){
if(!/^0\.\d[1-9]$|^0\.[1-9]\d$|^[1-9](\.\d{1,2})?$|^[1-9]\d(\.\d{1,3})?$/.test(this.entity.str)){
bootbox.alert("比例最大为100,且最多保留到小数点后3位");
this.entity.str= '';
}
}
}