본문 바로가기

프로그래밍/js

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

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. 배열 고차 함수  (0) 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