lessons 25~26. 정규표현식, String 객체

2023. 2. 21. 11:10·프로그래밍/js

2023.02.26

자바스크립트 스터디 7회차

공부 사이트: https://poiemaweb.com/

 

 

25. 정규표현식

문자열에서 특정 내용을 찾는 데 사용한다.

출처: poiemaweb.com

1) 정규표현식 

① 관련 메소드

메소드 설명
RegExp.prototype.exec 문자열에서 일치하는 항목에 대한 검색 수행, 배열 반환
RegExp.prototype.test 정규식과 문자열이 일치하는지 검사. true/false 반환
String.prototype.match 문자열과 매치되는 부분 검색 후 반환
String.prototype.replace 일치하는 부분을 대체한 후 새로운 문자열 반환
String.prototype.search 문자열에서 일치하는 부분을 검색. 첫 번째 인덱스 반환(위치)
String.prototype.split 문자열을 특정 구분자로 자른 후 배열로 반환
const targetStr = "Hello World!";
const regexr = /Wo/ig;

// RegExp 객체의 메소드
console.log(regexr.exec(targetStr));
console.log(regexr.test(targetStr));

// String 객체의 메소
console.log(targetStr.match(regexr));
console.log(targetStr.replace(regexr, "**"));

console.log(targetStr.search(regexr));
console.log(targetStr.split(regexr));

 

② 플래그

플래그 의미
i 대소문자 구별하지 않음
g 문자열 내 모든 패턴 검색
m 문자열의 행이 바뀌어도 검색 계속 진행

 

③ 패턴

패턴 의미
. 임의의 묹자 한 개 
+ 앞선 패턴을 최소 한 번 이상 반복
| OR
[] 대괄호 안 문자들에 대해 OR 적용
- 범위 지정
, 결과 분리
\w 알파벳과 숫자
\W 알파벳과 숫자를 제외
^ 특정 단어로 시작하는지 검사함
/^test/ : test로 시작하는지 검사
$ 특정 단어로 끝나는지 검사함
/test$/ :  test로 끝나는지 검사
\d 숫자 하나
[^]  괄호 안에 있는 ^는 부정의 의미
\s 공백문자 하나
{} 수량 지정.
a(bc){2,5} : a 또는 2개 이상 5개 이하의 bc를 포함한 문자열

 

 

2) RegExp 객체

new RegExp(pattern[, flags])

 

 

 

 

26. String 레퍼 객체

변수 또는 객체의 프로퍼티가 문자열을 값으로 가지고 있다면 String 객체의 별도 생성 없이 String 객체의 프로퍼티/메소드를 사용할 수 있다.

원시 타입 string이 레퍼 객체의 메소드를 사용할 수 있는 이유는 원시 타입으로 메소드 호출 시 원시 타입과 연관된 레퍼 객체로 일시적으로 변환되어 프로토타입 객체를 공유하기 때문이다.

const str = 'Hello world!';
console.log(str.toUpperCase());

 

1) String Constructor

// String 생성자 함수에 전달된 인자는 모두 문자열로 변환된다.
let strObj = new String('홍길동');
console.log(typeof strObj, strObj);

strObj = new String(1);
console.log(typeof strObj, strObj);

strObj = new String(undefined);
console.log(typeof strObj, strObj);


// new 연산자를 사용하지 않고 생성자 함수 호출 시 객체가 아닌 문자열 리터럴을 반환.
var x = String('홍길동');
console.log(typeof x, x);

 

 

2) String Property

String.length - 문자열 내 문자 개수 반환

참고로 String 객체가 length 프로퍼티를 소유하고 있으므로, 유사 배열 객체라는 것을 잊지 말자.

 

 

3) String Method

String.prototype.charAt() - 인수로 index를 전달하여 index에 해당하는 위치의 문자를 반환
String.prototype.concat() - 인수로 전달한 1개 이상의 문자열과 연결하여 새로운 문자열 반환
 String.prototype.indexOf() - 인수로 전달한 문자/문자열을 대상 문자열에서 검색한 후 처음 발견된 곳의 인덱스를 반환. 발견하지 못한 경우 -1
String.prototype.lastIndexOf() - 인수로 전달한 문자/문자열을 대상 문자열에서 검색하여 마지막으로 발견된 곳의 인덱스 반환. 발견하지 못한 경우 -1
String.prototype.replace() - 첫 번째 인수로 전달한 문자열/정규표현식을 대상 문자열에서 검색하여 두번째 인수로 전달한 문자열로 대체함. 새로운 문자열 반환
String.prototype.split() - 첫 번째 인수로 전달한 문자열/정규표현식을 대상 문자열에서 검색하여 문자열 구분 후 분리된 각 문자열로 이루어진 배열 반환
String.prototype.substring() - 첫 번째 인수로 전달한 인덱스에 해당하는 문자부터 두 번째 인자에 전달된 인덱스에 해당하는 문자 이전까지 반환
String.prototype.slice() - String.prototype.substring()과 동일.
- slice()는 음수 인수 전달 가능
String.prototype.toLowerCase()
String.prototype.toUpperCase()
- 대상 문자열 모든 문자를 소문자로
- 대상 문자열 모든 문자를 대문자로
String.prototype.trim() - 대상 문자열 양 끝에 있는 공백문자 제거한 문자열 반환
String.prototype.repeat() - 전달한 인수만큼 반복해 연결한 새로운 문자열 반환
String​.prototype​.includes() - 인수로 전달한 문자열 포함 유무 검사, 결과는 ture/false

 

 

 

 

 

 

 

 

 

 

 

 

 

 

저작자표시 (새창열림)

'프로그래밍 > js' 카테고리의 다른 글

lessons 29. 배열 고차 함수  (1) 2023.02.28
lessons 27~28. 배열  (0) 2023.02.28
lessons 22~24. Number, Math, Date 객체  (0) 2023.02.20
lessons 21. 전역 객체  (0) 2023.02.15
lessons 20. 빌트인 객체  (0) 2023.02.15
'프로그래밍/js' 카테고리의 다른 글
  • lessons 29. 배열 고차 함수
  • lessons 27~28. 배열
  • lessons 22~24. Number, Math, Date 객체
  • lessons 21. 전역 객체
병뚜
병뚜
열정!
  • 병뚜
    열려라 뚜껑
    병뚜
  • 전체
    오늘
    어제
    • all (372)
      • 일상X사랑X돈 (0)
        • 보안이슈 (114)
        • 뜨거운감자 (9)
        • 맛집 (2)
        • 혼잣말 (16)
      • 보안 (87)
        • 웹·모바일 (46)
        • 인프라 (19)
        • 리버싱 (8)
        • Security-Gym (10)
        • 리뷰 (4)
      • 프로그래밍 (66)
        • python (14)
        • java (12)
        • js (40)
      • System (47)
        • OS (14)
        • 침투 (33)
      • Play (20)
        • wargame (20)
      • 기타 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    혼공
    IT뉴스
    파이썬초보
    파이썬
    리버싱
    정보보안교육
    혼자공부하는파이썬
    악성코드
    파이썬공부
    정보보호
    공급망공격
    프로세스
    jwt
    파이썬입문
    windows internals
    정보보안
    보안뉴스
    자바스크립트 상속
    kisa
    보안이슈
    드림핵리버싱
    리버싱초보
    커널디버깅
    혼공파
    it이슈
    혼공학습단
    랜섬웨어
    혼공단
    윈도우인터널스
    뉴스요약
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
병뚜
lessons 25~26. 정규표현식, String 객체
상단으로

티스토리툴바