# 获取文件格式并判断格式是否正确
# 思路
- 分离最后一个“.”,然后取后面的字符串,取得文件后缀名
- 后缀名进行比对
# 代码
如果要进行文件类型判断, str.toLowerCase() 后在进行比对,避免大小写问题
# 方法1
// 获取文件字符串
var file = $("input[name='file']").val();
// 获取最后一个'.'的角标
var point = file.lastIndexOf(".");
// 抽取字符串
var type = file.substr(point);
1
2
3
4
5
6
2
3
4
5
6
# 方法2
// 获取文件字符串
var file = $("input[name='file']").val();
// 去除查询参数
var fileWithoutQuery = file.split('?')[0];
// 抽取文件名字
var filename = fileWithoutQuery.replace(/.*(\/|\\)/, "");
// 抽取文件信息
var fileExt = (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename.toLowerCase()) : '';
// 抽取文件类型
var fileType = fileExt[0];
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
# 场景
/**
* 判断是否是图片文件
*/
function isPicFile(fileType) {
// 后缀名转换为小写
var fileType = fileType.toLowerCase();
// 创建格式数组
var suppotFile = new Array();
// 存储格式类型
suppotFile[0] = "jpg";
suppotFile[1] = "gif";
suppotFile[2] = "bmp";
suppotFile[3] = "png";
suppotFile[4] = "jpeg";
//判断fileType是否存在数组里面
for ( var i = 0; i < suppotFile.length; i++) {
if (suppotFile[i] == fileType) {
return true;
}
}
//如果不存在返回 false
alert("文件类型不合法,只能是jpg、gif、bmp、png、jpeg、png类型!");
return false;
}
var file = $("input[name='file']").val();
var filename = file.replace(/.*(\/|\\)/, "");
var fileExt = (/[.]/.exec(filename)) ? /[^.]+$/.exec(filename.toLowerCase()) : '';
var fileType = fileExt[0];
isPicFile(fileType);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30