首页 新闻 会员 周边 捐助

有关javascript问题

0
悬赏园豆:10 [已解决问题] 解决于 2015-02-02 09:26

<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()里面的内容

java-001的主页 java-001 | 初学一级 | 园豆:4
提问于:2015-01-22 15:20
< >
分享
最佳答案
1

正则表达式呗,匹配是不是图片,以JPEG来说file.type的是"image/jpeg",用浏览器上的开发人员工具调试一边,就清晰了

收获园豆:5
秋壶冰月 | 大侠五级 |园豆:5903 | 2015-01-22 15:36

搞不懂正则,能具体的解释一下么

java-001 | 园豆:4 (初学一级) | 2015-01-22 15:57

@java-001: 

你还是系统的去学学正则表达式,多少都涉及到,只是多少而已,不需要会太深,就不多给说了,http://www.cnblogs.com/rubylouvre/archive/2010/03/09/1681222.html

秋壶冰月 | 园豆:5903 (大侠五级) | 2015-01-22 22:23
其他回答(1)
1
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" 等

收获园豆:5
Vivian软陶公仔 | 园豆:284 (菜鸟二级) | 2015-01-22 21:20
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册