开发日常小结(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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值