我需要检查文件名后缀是否为 JavaScript (JS文件以* .js结尾) 为此,我使用以下代码
var ext = aa.getName().substr(aa.getName().lastIndexOf('.') + 1);
现在的问题是如果文件名为file2.json
我仍然是真的(它返回json)
我的问题是,如果有更好的方法,即给出任何文件名,如
file1.xml
,file2.js
,file3.json
或file4.html
,只有file2
才会返回。
答案 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();
}
答案 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)
//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;