在Web开发中,经常会涉及到文件上传。文件上传时通常都要验证文件的有效性,这个通常就要用正则表达式来判断。
方法一:
$('input[type="file"]').on('change', function() {
var reg = /[^\\\/]*[\\\/]+/g; //匹配文件的名称和后缀的正则表达式
var name = $(this).val().replace(reg, '');
var postfix = /\.[^\.]+/.exec(name);//获取文件的后缀
var text =name.substr(0,postfix['index']);//获取没有后缀的名称
// 检测上传文件
});
方法二:
以下只是个例子,变量file可以是任意类似于网络路径的字符串,这个例子是获得name=file的对象传过来的文件地址
复制代码 代码如下:
var file=jQuery("input[name='file']").val()
var filename=file.replace(/.*(\/|\\)/, "");
var fileExt=(/[.]/.exec(filename)) ? /[^.]+$/.exec(filename.toLowerCase()) : '';
filename得到文件名
fileExt得到后缀名
方法三:
网上能找到的正则表达式大多都没有考虑中文文件夹和中文文件名的情况。
后来,自己动手写了一个。在走过了不少歪路后,我根据windows的命名规则(文件名中不能包含下列字符:/ / * ? | " < >),终于完成了一个自认为比较完整的一个正则式:
复制代码 代码如下:
(([a-zA-Z]:)|(//))((//)[^///*/?/|/:"<>]{1,255})+/.(([j,J][p,P][g,G])|([g,G][i,I][f,F]))
这个表达式是判断上传文件类型为jpg或gif格式的。自己测试过,无论文件夹和文件名是怎么样命名的,只要能通过windows文件管理找到的,都能正确判断。
以上所述就是本文的全部内容了,希望大家能够喜欢。 |