如果.js,请检查文件名后缀

时间:2017-08-06 14:00:46

标签: javascript regex

我需要检查文件名后缀是否为 JavaScript (JS文件以* .js结尾) 为此,我使用以下代码

var ext = aa.getName().substr(aa.getName().lastIndexOf('.') + 1);

现在的问题是如果文件名为file2.json我仍然是真的(它返回json) 我的问题是,如果有更好的方法,即给出任何文件名,如 file1.xmlfile2.jsfile3.jsonfile4.html,只有file2才会返回。

6 个答案:

答案 0 :(得分:3)

我相信这可行吗



function check(str){
    if(str.match(/(\w*)\.js$/) == null){
        console.log('false');
        return false;
    }
    else {
        console.log('true');
        return true;
    }
}
     
check('file1.xml');
check('file2.js');
check('file3.json');
check('file4.html');




答案 1 :(得分:2)

let isJS = function(filename) {
    return /\.js$/i.test(filename)
}


console.log(isJS("asd.json")) // false;
console.log(isJS("asdjs"))    // false;
console.log(isJS("asd.js"))   // true;
console.log(isJS("asd.JS"))   // true;

答案 2 :(得分:1)

您可以使用以下函数检查字符串是否以.js结尾:

function isJavascriptFile(str) {
  var regex = /\.js$/;
  var match = str.match(regex);

  return match !== null;
}

根据您的代码,您可以像这样使用它:

var name = aa.getName();
isJavascriptFile(name);

答案 3 :(得分:1)

对于这种情况,我认为最好不要使用正则表达式,

  var arr = [
    'file1.xml',
    'file2.js',
    'file3.json',
    'file4.html'
  ];

  for(var i=0, len=arr.length; i<len; i++){
    if(returnExtension(arr[i]) == 'js') {
      alert('Your file is: ' + arr[i])
    }
  }

  function returnExtension(filename){
    var a = filename.split(".");
    if( a.length === 1 || ( a[0] === "" && a.length === 2 ) ) {
      return "";
    }
    return a.pop();
  }

我的工作示例在https://jsfiddle.net/gat8mx7y/

答案 4 :(得分:0)

你要稍微修改你的代码,你几乎是对的:

funciton isJavascriptFile(fileName){
   var ext = fileName.substr(fileName.lastIndexOf('.') + 1);
   if(ext === 'js'){ return true; } 
   return false;
}

if(isJavascriptFile(aa.getName()) ) {
  console.log("file is javascript");
}

答案 5 :(得分:-1)

&#13;
&#13;
 //function GetJSName(){
  var filename="sample.js";
  var name = filename.split('.')[0];
  alert(name);

//};
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;