JS验证上传的文件是否为音视频文件格式
前情提要:
页面上有个这个小需求。
点击下方按钮,只能上传音视频。
于是,已自己的想法,写了一个笨办法。
没办法,自己对JS 还是七窍通六窍,一窍不通,好的业务逻辑,根本想不出来,
不过能解决问题,就好,就好。
业务需求:
音视频文件格式,一共这些格式需要判断:
【.avi,.wmv,.mpg,.mpeg,.mov,.rm,.ram,.swf,.flv,.mp4,.mp3,.wma,.avi,.rm,.rmvb,.flv,.mpg,.mkv】
代码过程:
1、想法:因为需要判断的结尾格式,太多了,直接写在 if 判断里,太乱了。就先用数组装起来。
//用来验证的后缀,如果还有其它格式,可以添加在right_type; var right_type = new Array("avi","wmv","mpg","mpeg","mov","rm","ram","swf","flv","mp4","mp3","wma","avi","rm","rmvb","flv","mpg","mkv")
2、获取到界面上 上传的值,进行简单的处理。
注意点:
要进行 .match(/^(.*)(\.)(.{1,8})$/)[3] 正则表达式 匹配处理,其中 value 不能为空字符串或nullmatch(/^(.*)(\.)(.{1,8})$/)[3] 正则表达式的具体分析,已单开一篇写了。
这里需要了解自行点击下方文章链接:JS中,正则表达式:match(/^(.*)(\.)(.{1,8})$/)[3]分析
if(document.getElementById("video").value!=''){ type = document.getElementById("video").value.match(/^(.*)(\.)(.{1,8})$/)[3]; //防止出问题,把获取到的所有结尾格式,全部转化为小写 type = type.toUpperCase(); }
3、用获取到的上传值,和需要验证的 音视频结尾格式,进行判断。
function isCon(arr, val){ for(var i=0; i<arr.length; i++){ if(arr[i] == val) return true; } return false; } var result = isCon(right_type, type); //可以打印开看结果,是布尔类型(Boolean),也就是: true 或 false console.log(isCon(right_type, type));
4、最后判断完,就可以进行业务逻辑了。
if(result == false){ alert("请检查您上传的文件是否为音视频"); return false; }else{ //这里就可以写正常的业务逻辑了 }
参看文档:
1. js验证上传的文件是否为JPEG,PNG,JPG,GIF格式。
2. JS判断上传文件类型
by不言谢
by不言谢
不要和别人比,要赢得是自己。(ง •̀_•́)ง
本文来自博客园,作者:不言谢,转载请注明原文链接:https://www.cnblogs.com/byx1024/p/13345355.html