上传文件时怎么对文件名进行限制,不能含有特殊字符

以下是对上传文件是的一些限制,请问我这种写法有问题吗,应该怎么写,谢谢!

       onError : function(event,queueId,fileObj,errorObj){
            $("#"+queueId).addClass("error");
            if(fileObj.size>1024*1024*10){
                alert("你上传的 \“"+fileObj.name+"\” 文件过大,请上传小于10M的附件。");
            }
            var tag = "%";
            if(fileObj.name.indexOf(tag)!=-1){
                alert("你上传的 \“"+fileObj.name+"\” 文件有特殊字符,文件名中不可存在特殊字符,请重新上传");    
            }   
        }

%不算什么特殊字符吧。一般是过滤特殊的后缀。

上传文件,一般是分为:
1)通过协议通知后台文件名,在通知前就可以完成必要的过滤。即客户传告诉后台服务器文件是什么,就是什么!
2)文件内容上传

建议使用正则表达式吧。

$(function(){
var str="sunny,woo";
var sear=new RegExp(',');
if(sear.test(str))
{
alert('Yes');
}
var tag=',';
if(str.indexOf(tag)!=-1)
{
alert('Yes');
}
});

看代码没有问题,不过你服务器端也都验证过一次,千万不要相信客户端提交的任何数据

运行测试

 var fileName = '有一个特殊字符#'; 
 if (/[^\u4e00-\u9fa5|[^a-z0-9]/gi.test(fileName)){
 console.log('包含特殊字符了哦!')  
 }

 // 输出:包含特殊字符了哦!

注:语言为 js,这里假设除汉字,字母,数字以外的字符都是特殊字符,下划线也算特殊字符哦。

正则表达式大法好,可以去了解一下正则表达式

http://blog.chinaunix.net/uid-20964486-id-3062971.html

大小是在配置文件中设置的,无特殊符号用正则表达式+match方法,%表示的是任意字符