본문 바로가기

웹 & 앱 꿀 TIP

[JS] 특정 문자 (ex: 괄호) 안 내용 가지고 오는 방법 feat.정규식

728x90

안녕하세요 서론 갖다 치우겠습니다.

 

사용했던 방법은 정규식을 사용하였습니다.

 

정규식도 함께 알아가겠습니다.

 

저에게는 

userInfo  // 관리자(admin)

라는 변수와 주석 안에 내용이 담겨있습니다.

 

괄호 안에는 id의 정보인데, 해당 id를 가지고 오는 방법으로서는 .match() 메소드*를 사용할 수 있습니다.

 

.match() 의 활용 참고 : doc

  - 인자 값으로 정규식을 넣고, 문자열이 정규식과 일치하면, 일치하는 문자열을 첫 번째 요소로 포함하는 Array를 반환

userInfo.match(/\(([^)]+)\)/)?.[1];

 

위 결과의 반환 array 값 

[
    "(admin)",
    "admin"
]

빨간색으로 기재되어있는 부분이 admin -> 다른 내용으로 기재되어있어 마스킹 처리하였습니다.

 

input에 전체 내용 뿐만 아니라 arrary로 반환해줘서 활용도가 높다!

 

정규식에 대하여

 

g는 전역 매칭

 

/.../ : JS에서 사용할 때 쓰는 리터럴* 표기법 -> 슬래시 사이에 정규식 패턴을 기재

 

\( , \) : 정규식에서의 괄호는 그룹을 의미하여 문자그대로 괄호를 사용할 대 는 \로 이스케이프* 처리 해야함.

 

(...) : 캡처 그룹 , 안에 있는 패턴과 매칭된 부분을 저장

 

[ ] : 문자 클래스*

 

^ :  문자 클래스 내부에서 맨 앞에 올 경우 부정(negation)를 의미

  [^)] : 닫는 괄호를 제외한 모든 문자를 의미

 

+ : 앞 패턴이 1 번 이상 반복됨을 의


 

* 메소드 : 객체 지향 프로그래밍(JAVA, javascript) 등에서 서브 루틴, 클래스가 갖고있는 기능

* 리터럴 : 특별한 의미가 없는 일반 문자 그대로 , 정규식에 쓴 문자와 일치하는 것을 말함

* 이스케이프 : 문자 그대로 사용하고 자 할 때 \ (역슬래시) 를 붙여 특수 문자를 일반 문자로 만드는 것

* 문자 클래스 : [] (대괄호)로 감싼 후보 상자, 적은 문자 중 하나와 매칭됨

728x90