2013-12-02 2 views
3

Я ищу использовать плагин Foundation Abide для проверки типа расширения файла, загруженного в тег ввода типа = "file", но у меня возникают проблемы с проверкой проверки на RegExp правильно.Подтвердить тип файла, используя Foundation Abide

HTML:

<div class="large-2 columns button"> 
    <input id="uploadResume" type="file" required pattern="resume" /> 
    <small class="error">PDF or Word Document only please</small> 
</div> 

JavaScript:

$(document) 
    .foundation().foundation('abide', { 
     patterns: { 
     // check if the last 3 letters are acceptable 
     resume: /^.(doc|DOC|pdf|PDF)*$/ 
    } 
}); 
+0

Отметьте мой ответ как возможно регулярное выражение, которое вы предоставляете, вызывает у вас проблемы, если не какая ошибка вы получаете? – Tafari

+0

@tafari Я попытался использовать оба приведенных ниже примера, я считаю, что ваш ответ верен, но возможно, что способ, которым я вызываю функцию, может быть неправильным, поскольку это ошибки, как только я нажимаю на вкладке «Файл». Я нажимаю на вход, сразу же получаю сообщение об ошибке, как только появится мой файл, который остается даже после того, как были выбраны правильные .pdf, .PDF, .doc или .DOC.Я считаю, что теперь проблема заключается в том, что мой jQuery, требующий ввода файла – Dylan

+1

, вы пытаетесь проверить ** файл ** с помощью ** шаблона **, я бы предложил попробовать ** шаблон **, я дал вам сначала простой ** текстовый ввод **, например, например: 'input type =" text "pattern =" resume "required>' и посмотреть, работает ли он там, если да, то это имеет какое-то отношение к типу ** ** типа ** , Просто проверьте, если это не удастся, нам нужно будет глубже:> Приветствия и удачи! – Tafari

ответ

4

Пока вы пытаетесь, чтобы соответствовать любому одному символу, за которым следуют упомянутые extenions, поэтому попробуйте эту модель:

PATTERN

/\.(doc|DOC|pdf|PDF)$/ 

Это будет соответствовать только дотам следует какому-либо из указанных расширений, так что возможности будут:

.doc 
.DOC 
.pdf 
.PDF 

Но если вы хотите, чтобы соответствовать всему имени файла + использование расширений это:

ОБРАЗЕЦ

/^.+?\.(doc|DOC|pdf|PDF)$/ 

Добавлено .+? после ^, что означает «совпадение любого символа, кроме новой строки 0 или более раз, до удовлетворения следующего токена, добавлено также \., чтобы соответствовать точке до extenion. Я также удалил *, который не нужен и вызовет повторение расширений.

Примеры

filename.PDF

Этот файл будет сравниваться.

filename.exe

Это будет не совпадают.

окончательного ответ

Использования 2-й схемы, как инлайн схема:

<input type="file" required pattern="^.+?\.(doc|DOC|pdf|PDF)$" />. 

Видимо есть какой-то вопрос, используя встроенные шаблоны, которые заставляют вас удалить косую черту и в начале шаблона и в конце его. Также названные шаблоны кажутся очень странными, и я не уверен, почему это так.

Смежные вопросы