Javascript проверить имя файла перед загрузкой - PullRequest
0 голосов
/ 05 ноября 2011

Я просто хочу проверить имя файла загружаемого изображения, чтобы убедиться, что в нем нет пробелов или необычных символов.

Это моя последняя попытка поиска, все еще не повезло. Может быть, это связано с путем к файлу? это учитывает это или только имя файла?

У меня есть это и проверка работающей серверной части расширения с помощью php, но я хотел бы получить приглашение перед отправкой.

На данный момент я получаю всплывающее предупреждение, даже если я использую имя файла, которое он должен принять, или имя, которое он должен отклонить.

JavaScript

function validate(elem){
    var alphaExp = /^[a-zA-Z_-]+$/;
    if(elem.value.match(alphaExp)){
        return true;
    }else{
        alert("File name not suitable");
        elem.focus();
        return false;
    }
}

HTML

<label for="file">Filename:</label>
<input type="file" name="filename" id="filename" onchange="validate(this)" /> 
<p><input type="submit" name="submit" class="submit" value="Submit" />
</form>

Ответы [ 3 ]

3 голосов
/ 05 ноября 2011

Для этого вам понадобится гораздо более сложное регулярное выражение, потому что проверяемое elem.value будет не таким, как image123.jpg, а скорее как C:\fakepath\randomfolder\some other folder\image123.jpg

.чтобы проверить это: http://www.codeproject.com/Tips/216238/Regular-Expression-to-validate-file-path-and-exten

Пример, который вы найдете на этой странице, в основном предназначен для документов, а не изображений, но вы можете немного его изменить, чтобы удовлетворить ваши потребности, например:*

0 голосов
/ 04 ноября 2017

это очень очень просто с test функцией

function validate(form){
  if (/\s/.test(form.elements.file.value)) {
    alert(' filename contains spaces. Please rename the file.');
    return false;
  }
  return true;
}
<html>
<body>
<form onsubmit="return validate(this);">
  <input type="file" name="file" value="" >
  <input type="Submit" value="Submit" >
</form>
</body>
</html>
Источник https://codehurdles.blogspot.in/2017/11/javascript-validate-filename-before.html
0 голосов
/ 05 ноября 2011

Вы также можете использовать эту функцию ....

 <script type="text/javascript">
function getNameFromPath(strFilepath) {
    var objRE = new RegExp(/([^\/\\]+)$/);
    var strName = objRE.exec(strFilepath);

    if (strName == null) {
        return null;
    }
    else {
        return strName[0];
    }
}
</script>

и

<script language="javascript">
function Checkfiles() {
    var fup = document.getElementById('filename');
    var fileName = fup.value;
    var ext = fileName.substring(fileName.lastIndexOf('.') + 1);
    if(ext == "gif" || ext == "GIF" || ext == "JPEG" || ext == "jpeg" || ext == "jpg" || ext == "JPG" || ext == "doc") {
        return true;
    } else {
        alert("Upload Gif or Jpg images only");
        fup.focus();
        return false;
    }
}
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...