<script language="JavaScript">
function FileUpload(){
var file;
for(var i=0;i<document.getElementById("file2").files.length;i++){
file=document.getElementById("file2").files[i];
if(!/image\/\w+/.test(file.type)){
alert(file.name+"不是图像文件");
break;
}else{
alert(file.name+"是图像文件,可以上传");
}
}
//alert(file.name+"www")
}
</script>
</head>
<body>
请选择文件:<input type="file" id="file2" name="file2" multiple/>
<div><input type="button" value="文件上传" onclick="FileUpload();"/></div>
</body>
求解释if()里面的内容
正则表达式呗,匹配是不是图片,以JPEG来说file.type的是"image/jpeg",用浏览器上的开发人员工具调试一边,就清晰了
搞不懂正则,能具体的解释一下么
@java-001:
你还是系统的去学学正则表达式,多少都涉及到,只是多少而已,不需要会太深,就不多给说了,http://www.cnblogs.com/rubylouvre/archive/2010/03/09/1681222.html
if(!/image\/\w+/.test(file.type)) // file为一个文件对象,包含type,size,path等属性 // file.type为文件类型 // png图片文件,type="image/png" // txt文本文件, type="text/plain" var fileType=file.type; // 正则表达式 // Javascript RegExp方法 RegExp.prototype.test();
// "test() 方法执行一个检索,用来查看正则表达式与指定的字符串是否匹配。返回 true 或 false。"-引用MDN
// 可以拆分为三部分 // 1. image\/ 匹配image/ // 2. \w+ 匹配一个单字字符(字母、数字或者下划线)。 // 3. 最前/及最后/ "对于那些通常被认为字面意义的字符来说,表示下一个字符具有特殊用处,并且不会被按照字面意义解释。"-MDN var reg=/image\/\w+/;
也就是说 /image\/\w+/.test(file.type)是匹配file.type是否为"image/xxx"格式字符串
如果是以"image/"开头,则表示匹配到的文件类型为图片文件。如:"image/png","image/jpeg" 等