0
点赞
收藏
分享

微信扫一扫

开发日常小结(11):文件上传功能改进:中文字符检测与文本内容处理


2018年4月14日

blog 来自一个后台管理需求的解决,在此做个总结和分享。

【1】业务场景

我们在手游中经常看到有游戏推送的各种广告或者活动(变着法子让玩家充值..),而这种广告投放是由后台来决定的,有时候简单的是:点击广告的图片,然后跳转到某一场景;也可以文件推送,玩家点击相关里面的内容链接,达到推广的目的;这些从技术层面看都是很好解决的,使用图片服务器(一般是阿里云或者腾讯云,华为云也在拼命的拓展市场),后台上传图片到服务器,将两者绑定到一起即可。


【2】基于需求,有解决方案,那就好办了。

2.1 文件上传页面

1)input控件添加文件

<div class="col-sm-2">
<input id="upLoadFile" type="file" class="form-control" οnchange="jsReadFiles(this.files)"/>
</div>


2)js上传文件数据流

//js 读取文件
function jsReadFiles(files) {
if (files.length) {
var file = files[0];
var upFileName = $("#upLoadFile").val();
var index1=upFileName.lastIndexOf(".");
var index2=upFileName.length;
var suffix=upFileName.substring(index1+1,index2);//后缀名
var reader = new FileReader();//new一个FileReader实例
fileType = suffix;
if (/text+/.test(file.type)) {//判断文件类型,是不是text类型
reader.readAsText(file,'gb2312');
reader.onload = function(e) {
roleList = e.target.result;
//var strFileName=file.replace(/^.+?\\([^\\]+?)(\.[^\.\\]*?)?$/gi,"$1"); //正则表达式获取文件名,不带后缀
basic.alert("添加成功,文件名字是: "+file.name+" !");
}
}else{
basic.alert("文件格式错误,请重新上传!");
$("#upLoadFile").val(null);
}
}


2.2 后台检测数据流

//正则表达式使用的中文字符
static String exp="^[\u4E00-\u9FA5|\\!|\\,|\\.|\\。|\\(|\\)|\\《|\\》|\\“|\\”|\\?|\\:|\\;|\\【|\\】]$";

/**
*@工具方法-中文字符和标点检测
* */
public static boolean isContainChinese(String str){
Pattern p = Pattern.compile(exp);
for (int i = 0; i < str.length(); i++) {// 遍历字符串每一个字符
char c = str.charAt(i);
Matcher matcher=p.matcher(c + "");
if(matcher.matches()) {
return true;
}
}
return false;
}


以上,可以检测到数据流的中文字符,包括标点符号。


举报

相关推荐

0 条评论