特殊字符 “[”和“]”的处理
主要用于处理特殊文件名查询和请求
SQL语句处理
eg:
select * from FarmTransferApproval
where ApprovalName like '%沪府土/[2010/]86号%' escape '/'
js处理
eg
//访问后端静态资源文件时
encodeStr(str) {
return str.trim().replace(new RegExp('\\[', 'gm'), '%5B').replace(new RegExp(']', 'gm'), '%5D')
},
//拼接sql时
encodeStr(str) {
return str.trim().replace(new RegExp('\\[', 'gm'), '/[').replace(new RegExp(']', 'gm'), '/]')
}
java处理
eg
spring jpa
List<Predicate> list = new ArrayList<Predicate>();
if(BaseUtil.stringNotNull(param.getApprovalName())){
list.add(cb.like(approvalName,"%"+ param.getApprovalName().replaceAll("\\[","%").replaceAll("]","%")+"%"));
}
mybatis plus
QueryWrapper<VGisinfoAllotland> queryWrapper = new QueryWrapper<VGisinfoAllotland>();
queryWrapper.lambda()
.like(StringUtils.isNotBlank(params.getParams().getReleaseNo().replaceAll("\\[","%").replaceAll("\\]","%")), VGisinfoAllotland::getReleaseNo, params.getParams().getReleaseNo().replaceAll("\\[","%").replaceAll("]","%"));