String.prototype 메소드

Stella·2021년 6월 28일
0

String 메소드


String.prototype 메소드


모든 String 인스턴스는 String.prototype으로부터 메소드와 프로퍼티를 상속받습니다.

이렇게 상속받은 String.prototype 메소드를 이용하면, 다음과 같은 문자열 작업을 할 수 있습니다.

  1. 문자열에서의 위치 반환

  2. 문자열 추출

  3. 문자열 분리

  4. 문자열 결합

  5. 문자열의 대소문자 변환

  6. 문자열 주위의 공백 제거

  7. 정규 표현식을 이용한 문자열 조작

1. 문자열에서의 위치 반환


이 메소드들은 문자열을 찾기 시작할 String 인스턴스의 위치를 두 번째 인수로 전달할 수 있습니다.

만약 전달받은 특정 문자나 문자열을 찾을 수 없을 때는 -1을 반환합니다.

  • indexOf(); 해당하는 인덱스 값을 문자열 에서부터 찾습니다.
  • lastIndexOf();해당하는 인덱스 값을 문자열 에서부터 찾습니다

ex)

let str = 'abcDEFabc';
str.indexOf('abc');  // 0 -> 자바스크립트에서 인덱스는 0부터 시작함.
str.indexOf('abcd');  // -1 -> 문자열을 비교할 때 문자의 대소문자를 구분함.
str.indexOf('abc', 3);  // 6  -> 인덱스 3부터 'abc'를 찾기 시작함.
str.lastIndexOf('abc');  // 6
str.lastIndexOf('d');  // -1
str.lastIndexOf('c');   // 8

2. 문자열 추출


String 인스턴스에서 전달받은 시작 인덱스부터 종료 인덱스 바로 앞까지의 문자열만을 추출하여 만든 새로운 문자열을 반환합니다.

-slice();
-substring();
-substr();

ex)

let str = 'abcDEFabc';
str.slice(2,6);  // cDEF -> 인덱스 2부터 인덱스 5까지의 문자열을 추출합니다.
str.slice(-4, -2);  // Fa -> 음수로 전달된 인덱스는 문자열의 뒤에서부터 시작함.
str.slice(2);  // cDEFabC 인덱스 2부터 끝을 지정안해주면 마지막 값까지 추출한다.
str.substring(2.6);  // cDEF
str.substr(2, 4);    // cDEF

slice() vs substring() vs substr()


slice(start index, end) slicestart index 시작부분부터 end까지 추출한다. 단! start index 값이 end 값보다 작아야 한다.(start < end)
또한 start index 값만 있을시 end 은 문자열 끝부분 지정된다.

ex)

let str = 'abcdef'
//slice를 이용해서 de를 얻고 싶을떄
str.slice(4,6) // de

substring(start index, end) substringslice와 마찬가지로 start index 부터 end 값 까지 자른다. 하지만 slice다른점start index 값이 end 값보다 크면 start와 end 값을 반전한다.(start > end)

ex)

let str = 'abcdef'
str.slice(4,2)	// '' 빈 문자열을 반환한다.
str.substring(4,2)  // cd start 값이 end값보다 크므로 반전
str.substring(2,4)	//  cd 위의 값과 동일하다.

substr(start index, length)start index 에서부터 length 길이만큼 자릅니다.

ex)

let str = 'abcdef'
str.substr(2,2)  //  cd

3. 문자열 분리


다음 메소드는 String 인스턴스를 구분자(separator)를 기준으로 나눈 후, 나뉜 문자열을 하나의 배열로 반환합니다.

- split()

split() 메소드는 인수로 구분자를 전달하지 않으면, 전체 문자열을 하나의 배열 요소로 가지는 길이가 1인 배열을 반환합니다.

ex)

  let str = '아아 빨리 코딩을 잘하고 싶다. 제발!';
  str.split();  //  입력 값이 없으면 그대로 출력"아아 빨리 ..."
  str.split('');  // (21) 한 문자씩 출력 "아", "아", " ", "빨", "리" ...
  str.split(' ');  // (6) 띄어쓰기 를 기준으로 나눔 "아아", "빨리", "코딩을" ...
  str.split('.');  // (2) .를 기준으로 나눔 "아아 빨리 코딩을 잘하고 싶다", " 제발!"

4. 문자열 결합


다음 메소드는 String 인스턴스에 전달받은 문자열을 결합한 새로운 문자열을 반환합니다.

-concat()

ex)

  let str = '아아 빨리';

  str.concat('코딩을 잘하고 싶다.') // 아아 빨리 코딩을 잘하고 싶다.
  str.concat(' 제발!'); // 아아 빨리 코딩을 잘하고 싶다. 제발!

5. 문자열의 대소문자 변환


다음 메소드는 String 인스턴스의 모든 문자를 대문자나 소문자로 변환한 새로운 문자열을 반환합니다.

- toUpperCase()
- toLowerCase()

ex)

 let str = 'JavaScript'
  str.toUpperCase();  // JAVASCRIPT
  str.toLowerCase();  // javascript

6.문자열 주위의 공백 제거


다음 메소드는 String 인스턴스의 양 끝에 존재하는 모든 공백과 줄 바꿈 문자(LF, CR 등)를 제거한 새로운 문자열을 반환합니다.

- trim()

trim() 메소드는 String 인스턴스의 문자열 값 그 자체에는 영향을 주지 않습니다.

ex

  let str = '       JavaScript     ';
  str.trim();  // JavaScript
profile
메모장 쓰면서 공부중

0개의 댓글

관련 채용 정보