如何在javascript中验证文件名和文件扩展名

时间:2020-09-18 03:46:52

标签: javascript arrays reactjs

我尝试上传名称为“ report”的json文件。

如果文件名具有report,staticreport,dynamic_report,则应验证。otherfiles名称应引发错误消息。文件应为.json

report.json  ===> pass
staticreport.json===> pass
dynamic_report.json===> pass

report.doc  ===> fail
staticreport.xsl===> fail
dynamic_re5port.json===> fail

如何使用javascript来实现

html代码

 <input accept=".json" id="contained-button-file" multiple type="file"  onChange={ (e) => handleFile(e.target.files) } /> 

Javascipt代码

const handleFile = (selectorFiles: FileList) => {   
var file1 = selectorFiles[0].name.split('.').pop(); 
if( file1 ==='json') {
//([a-zA-Z0-9\s_\\.\-\(\):])+(.json)$   
}
}  

3 个答案:

答案 0 :(得分:0)

我可能会使用正则表达式来测试名称是否以.json结尾。

var test = new RegExp('\\.json$');
var file = 'hello.json';
if (file.match(test)) {
    console.log('Yay!');
}

答案 1 :(得分:0)

尝试以下方式

HTML代码

<!-- File input field -->
<input type="file" id="file" onchange="return fileValidation()"/>

JavaScript

function fileValidation(){
    var fileInput = document.getElementById('file');
    var filePath = fileInput.value;
    var allowedExtensions = /(\.json)$/i;
    if(!allowedExtensions.exec(filePath)){
        alert('Please upload file having extensions .json only.');
        fileInput.value = '';
        return false;
    }else{
       // perform your actions
        }
    }
}

更多view here

答案 2 :(得分:0)

文件类型Validating。 后json文件验证。检查的文件名包含“报告”

 var allowedExtensions = /(\.json)$/i;

if (allowedExtensions.exec(selectorFiles[0].name) ) 
{
    if (selectorFiles[0].name.includes('report') ) {
        // code here
    }
}