1.JS中拼接HTML遇到转译单双引号问题
最外层使用单引号拼接时,属性及方法使用双引号,方法中需要传参数类型为字符串时则需要进行转译,否则参数显示到页面会有错误,点击方法是报错如下:
加上转译符之后能正常显示方法中内容: \' 转译成单引号
示例代码如下:
$.each(data.list,function(i,v){
html+='<div class="mappic"><div class="mpic" οnclick="mapInfoQuery(\''+v.id+'\',\''+v.name+'\',\''+v.knowledgeBaseId+'\');">'
+'<img src='+v.imgPrefix+v.imgUrl+' alt=""></div>'
+'<h4><a href="${ctx}/knowledge/knowledgeMapInfo/deleteMap?id='+v.id+'" οnclick="return confirmx(\'确认要删除该地图吗?\', this.href)">'
+'<i class=" pull-right deletet mapmari"></i></a>'+v.name
+'</h4><p class="text_mark"><span class="">'+v.signNumber+'个标记位</span></p></div>';
});
2. Java中转译字符
引号使用反斜杠转译即可:\
代码示例:
String jsonParam ="{\"id\":\""+positionId+"\",\"mapId\":\"\"}";
String url = UrlUtils.getKnowledgeMapInfoUrl();
HttpRequestUtil.httpPost(url, jsonParam);
Java中斜杠也需要转译:使用双斜杠即可 \\
代码示例:
/**
* 是否是正整数
* @param str
* @return
*/
public boolean isNumeric(String str){
Pattern pattern = Pattern.compile("^[1-9]\\d*$");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}