在做上传相关的业务的时候,经常需要验证文件的扩展名是否符合,正则表达式是个不错的选择。以验证图片格式为例:

function checkSuffix(str)
{
  var strRegex = "(.jpg|.png|.gif|.ps|.jpeg)$"; //用于验证图片扩展名的正则表达式
  var re=new RegExp(strRegex);
  if (re.test(str.toLowerCase())){
    return true;
  } else{
    alert("文件名不合法"); 
    return false;
  }
}

下面就来验证一下

var f = 'a.mp3'
checkSuffix(f)
false

f='a.jpg'
checkSuffix(f)
true

如果头疼写正则表达式的话,下面来改造一下函数,直接传入支持的后缀名

/*
* suf 格式为逗号分隔的多个后缀,例如jpg,gif,png
*/
function checkSuffix(str,suf)
{
  var strRegex = "(." + suf.split(',').join('|.') + ")$";
  var re=new RegExp(strRegex);
  if (re.test(str.toLowerCase())){
    return true;
  } else{
    alert("文件名不合法,支持的后缀名为" + suf); 
    return false;
  }
}

下面就来验证一下

checkSuffix('a.jpg', 'jpg,gif,png')
true

checkSuffix('a.mp3', 'jpg,gif,png')
false

怎么样,简单多了吧。

转载请注明:知识蚂蚁 » js正则表达式验证文件扩展名

我来说说

(便于我们更好的交流)

有不明白的地方欢迎留言哦~
取消