#javascript #arrays #reactjs
#javascript #массивы #reactjs
Вопрос:
Я попытался загрузить файл json с именем file name contains report .
если имя файла имеет report , staticreport ,dynamic_report, оно должно быть проверено. другое имя файла должно выдавать сообщение об ошибке. Файл должен быть .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-9s_\.-():]) (.json)$
}
}
Комментарии:
1. Чтобы было ясно, ваш вопрос: «Как я могу проверить filename и расширение файла в Javascript?», верно? И ваш список допустимых имен
report.json
файлов,staticreport.json
, иdynamic_report.json
, правильный? Если это так, вы должны иметь возможность быстро проверить полное имя файла (включая расширение), выполнив проверку на равенство.
Ответ №1:
Я бы, вероятно, использовал регулярное выражение, чтобы проверить, заканчивается ли имя на .json
.
var test = new RegExp('\.json$');
var file = 'hello.json';
if (file.match(test)) {
console.log('Yay!');
}
Ответ №2:
Попробуйте следующий способ
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
}
}
}
для более подробного просмотра здесь
Комментарии:
1. как проверить, состоит ли имя файла из определенного слова
Ответ №3:
Проверка типа файла. После проверки файла json. проверенное имя файла состоит из ‘report’
var allowedExtensions = /(.json)$/i;
if (allowedExtensions.exec(selectorFiles[0].name) )
{
if (selectorFiles[0].name.includes('report') ) {
// code here
}
}