2016-05-22 3 views
2

Имя файла должно содержать 3 или более символов. и расширение файла типа: pdf, doc, html. Это регулярное выражение, которое я использую, но оно не работает.Мне нужно проверить имя файла и расширение в javascript

 /^[A-Za-z]{3}\.?[pdf]|[doc]|[html]$/ 

Что не так?

+0

Тип то, что вы имеете в https://regex101.com/ и посмотреть на то, что это означает – Quentin

ответ

3

Вы неправильно использовали классы символов ([...], которые соответствуют 1 символу) для группировки конструкции ((...), которые используются для группировки альтернатив последовательностей символов). Кроме того, вы объявляете . по дополнительному заказу с ?, но это не должно (согласно вашим требованиям). Кроме того, 3 или более означает, что вам нужен ограничивающий квантор {3,}, а не {3} (который соответствует точно 3 вхождениям квантифицированного подшаблона).

Использование

/^[A-Za-z]{3,}\.(?:pdf|doc|html)$/ 

См regex demo.

Или, чтобы сделать весь образец нечувствительно к регистру:

/^[a-z]{3,}\.(?:pdf|doc|html)$/i 
          ^

детализирует Pattern:

  • ^ - начало строки
  • [A-Za-z]{3,} - 3 или более ASCII буквы
  • \. - буквальная точка
  • (?:pdf|doc|html) - не-группа записи соответствия либо pdf, doc или html последовательность символов
  • $ - конец строки
+1

Спасибо :) Очень полезно – angie

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