본문 바로가기

JAVASCRIPT/JQUERY

[Jquery]Mask Plgin 사용

jquery mask는 form 필드나 Html elements의 형태를 표시하기 위한 jquery plugin이다.

유저 데이터를 전화번호나 우편번호와 같이 원하는 형태의 데이터를 모으기 위해서 유용하게 사용할 수 있다.

 

 

 

<HTML>

<p>
<label>Date Example
    <input type="text" name="date" />
    </label>
</p>

<p>
  <label>Postal Code Example
    <input type="text" name="postal-code" />
  </label>
</p>

<p>
  <label>Phone Number Example
    <input type="text" name="phone-number" />
  </label>
</p>

 

<JS>

 

$('input[name="date"]').mask('00/00/0000');
$('input[name="postal-code"]').mask('S0S 0S0');
$('input[name="phone-number"]').mask('(000) 000 0000');

$('input[name="postal-code"]').focusout(function() {
   $('input[name="postal-code"]').val( this.value.toUpperCase() );
});

 

실행 사이트: https://dobsondev.com/2017/04/14/using-jquery-mask-to-mask-form-input/

 

위에의 예시를 살펴보면, 만약  phone number input란에 "555-555-5555" 타이핑 한다면 "-" 문자를 생략할 것이다(정해진 포맷에 맞게). 또한 포맷에 맞게 입력될 것이다.  

 

 

 

주의) 두 가지의 라이브러리를 추가해야 한다.

  • jQuery (https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js)
  • jQuery Mask (https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.10/jquery.mask.js)
  •  

    입력값을 mask 하기위해서 ,  Jquery selector와 .mask(...) 기능이 필요하거나 HTML data data-mask 속성을 추가하는 것이 필요하다.

    [위의  예제에서 Jquery selector 사용 - postal 코드와 phone number 코드 // Html data 속성 사용 - SIN 코드

     

    예제 1. Jqeury Selector 사용

     

    $('input[name="date"]').mask('00/00/0000');

    보다시피, input 명을 사용하여 .mask() function을 사용하는 것을 더 선호한다.

    .mask() function은 규칙적인 표현형식에 맡게 번역할 수 있는 숫자나 문자 형식의 포맷을 취한다.(예: 00/00/0000)

     

    .mask(..) function은  이러한 분명한 방법으로 mask을 한다

     

     

  • ‘9’: {pattern: /\d/, optional: true}
  • 0’: {pattern: /\d/}
  • ‘#’: {pattern: /\d/, recursive: true}
  • ‘A’: {pattern: /[a-zA-Z0-9]/}
  • ‘S’: {pattern: /[a-zA-Z]/}
  •  

    만약 무언가를 Overwrite하거나 새로운 거를 추가하기 원한다면, 다음처럼 할 수 있다.

     

    $('.your-field').mask('00/00/0000', {'translation': {0: {pattern: /[0-9*]/}}});

    -유효한 문자열은 0~~~9 그리고 * 

    translation 사용과 custom된 무언가를 정의함으로써 원하는 형태를 할 수 있다.

     

     

    예제 2. HTML DATA 사용

    Jquery selector와 아주 유사하고 오직 input 태그에 mask를 넣는 차이만 있다.

    mask 플러그인을 사용할 때, 훨씬 깔끔하고 더 쉽게 찾을 수 있기 때문에 빈번하게 사용한다.

    SIN number 예제를 살펴보면,

     

    <input type="text" name="social-insurance" data-mask="000 000 000" />

    특별한 메소드 사용이 전혀 없다. 즉, custom translaction 기능을 사용할 수 없다.

     

     

    번역: https://dobsondev.com/2017/04/14/using-jquery-mask-to-mask-form-input/