我正在使用以下JavaScript来检查文件名是否仅包含字母,数字,破折号和下划线。正则表达式在IE和Chrome中总是返回false
var patt = /^[a-zA-Z0-9._-]+$/;
if (!patt.test(filename)) {
alert("Filename contains invalid characters");
}
Firefox的正常工作,包含空格的文件名被拒绝,并允许其他人,但在IE和Chrome,它总是返回FALSE,无论文件名被传递给它。
我也使用RexgExp对象的尝试:
var patt = new RegExp(/^[a-zA-Z0-9._-]+$/);
,但结果是一样的。
为什么这个点在方括号内? – 11684
如果你想扩展名(即.jpg),你需要使用“\”。不是“。” 。是正则表达式的通配符,匹配所有字符(包括空格) 修改后的正则表达式:^ [a-zA-Z0-9 \ ._-] + $ 如果你也考虑@EvertonAgner的帖子,正则表达式是 ^ [a-zA-Z0-9 \ ._-] * $ –
我必须问...您确定您传递的文件名不是空字符串(在Chrome和IE上)?我的意思是,'+'修饰符要求至少应有1个字符。 – everton