2013-12-10 4 views
-1

jQuery-File-Upload 및 기본 -flash.html 데모에는 파일 확장자에 대한 정규 표현식이 있습니다.파일 확장자에 대한 정규식, 이해 방법

/(\.|\/)(gif|jpe?g|png)$/i

(gif|jpe?g|png)$/i - 두 번째 부분은 분명 일치 특정 파일 확장자는 대소 문자를 구별하지 않습니다. 이 부분에 대한

그러나 :

(\.|\/) 

소수점 하나 개의 문자, |은 첫 번째 또는 두 번째 부분과 일치합니까?

jQuery를 - 파일 업로드 basic-plus.html

+0

참고 :'(\ | \ /.)'정말 나쁜 스타일이 더 나은로 기록됩니다''훨씬 더이다 ([\ /.]) 실력 있는. 그 첫 표현식은 누구든지이 확장판을 작성하면 적법한 지식을 갖지 못하는 적기입니다. – ridgerunner

답변

3

이 부분 : (\.|\/) 평균 :

  • \. : 실제 점 (탈출), 그것은 모든 문자와 일치 하지 일반적인 점이다.
  • | 또는
  • \/ 슬래시

그래서 당신은 잡는 것 (탈출) :

  • .gif, /gif, .GIF, /GIF ...
  • .jpg, /jpg, .JPG , /JPG, .jpeg, /jpeg, .JPEG, /JPEG ...
  • .png, /png이 두 파일 확장자 (.jpg, .gif ...)과 MIME 타입 (image/jpeg, image/gif을 확인하는데 사용된다 .PNG, /PNG ...

. ..). jquery.fileupload-validate.js 소스

추출 :

$.widget('blueimp.fileupload', $.blueimp.fileupload, { 

    options: { 
     // The regular expression for allowed file types, matches 
     // against either file type or file name: 
     acceptFileTypes: /(\.|\/)(gif|jpe?g|png)$/i, 
     ... 
    }, 

    processActions: { 
     validate: function (data, options) { 
      ... 
      // Check file.type AND file.name 
      if (options.acceptFileTypes && 
       !(options.acceptFileTypes.test(file.type) || 
        options.acceptFileTypes.test(file.name))) { 
       file.error = settings.i18n('acceptFileTypes'); 
      } 
      ... 
     } 
    } 

}); 
+2

그 부분은 그를 위해 불필요하게 보인다. –

+2

확장 기능이'/ PNG'에 관해서 정규 표현식 검사를하는 이유는 무엇입니까? – anubhava

+0

점이 분명하지만 왜 슬래시입니까? – Bor