JavaScript

String Method

히찔 2022. 5. 13. 17:28

 

String Method

 

String.indexOf() / String.lastIndexOf()

  • String.indexOf(): String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환한다.
  • String.lastIndexOf(): String 객체에서 주어진 값과 일치하는 마지막 인덱스를 반환한다.
  • 일치하는 값이 없으면 -1을 반환한다.
  • 문자열을 찾을 때 대소문자를 구분한다.
  • 첫 번째 인자: 찾으려는 문자열(주어지지 않으면 “undefined”를 찾음)
    두 번째 인자: 문자열에서 찾기 시작하는 위치를 나타내는 인덱스 값 (생략가능)
// 구문
str.indexOf(searchValue[, fromIndex])

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

 

String.substring()

  • String 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환한다.
  • 첫 번째 인자: 반환 문자열의 시작 인덱스
    두 번째 인자: 반환 문자열의 마지막 인덱스 (생략가능, 생략 시 문자열의 끝까지 모든 문자 반환)
// 구문
str.substring(indexStart[, indexEnd])

const str = "abcDEFabc"
str.substring(2, 6); // cDEF

 

String.charAt()

  • 문자열에서 특정 인덱스(인수로 전달한 값)에 위치하는 문자를 반환한다.
  • 인자가 문자열의 범위(0 ~ (문자열 길이 - 1))를 벗어난 경우 빈문자열을 반환한다.
  • 인자를 생략하면 기본값으로 0를 설정되고 첫 문자를 반환한다.
const str = 'Hello'
console.log(str.charAt(0)) // H 
console.log(str.charAt(1)) // e 
console.log(str.charAt(2)) // l 
console.log(str.charAt(3)) // l 
console.log(str.charAt(4)) // o 

// 지정한 index가 범위(0 ~ str.length-1)를 벗어난 경우 빈문자열을 반환
console.log(str.charAt(5)) // ''

 

String.replace()

  • 첫번째 인수로 전달한 문자열 또는 정규표현식을 String 객체에서 검색하여 두번째 인수로 전달한 문자열로 대체한다.
  • 원본 문자열은 변경되지 않고 결과가 반영된 새로운 문자열을 반환한다.
  • 검색된 문자열이 여러개가 존재할 경우 첫번째로 검색된 문자열만 대체된다.
// 구문
let newStr = str.replace(regexp|substr, newSubstr|function)

const str = 'Hello world'

// 첫번째로 검색된 문자열만 대체하여 새로운 문자열을 반환
str.replace('world', 'Hizini') // Hello Hizini 

// 특수한 교체 패턴 사용 가능 ($& => 검색된 문자열) 
str.replace('world', '<strong>$&</strong>') // Hello <strong>world</strong> 

/* 정규표현식 
g(Global): 문자열 내의 모든 패턴을 검색한다. 
i(Ignore case): 대소문자를 구별하지 않고 검색한다. */ 
str.replace(/hello/gi, 'Hizini') // Hizini world

.replace(' ','') // 첫번째 공백 제거
.replace(/\\-/g,'') // 특정문자 제거1 (-)
.replace(/,/g,'') // 특정문자 제거2(,)
.replace(/^\\s+/,'') // 앞의 공백 제거
.replace(/\\s+$/,'') // 뒤의 공백 제거
.replace(/^\\s+|\\s+$/g,'') // 앞뒤 공백 제거
.replace(/\\s/g,'') // 문자열 내의 모든 공백 제거
.replace(/\\n/g,'') // n개행 제거
.replace(/\\r/g,'') // 엔터 제거
  • 매개변수가 String일 때 특수한 교체 패턴
    • $` : 문자 대체(replace) 시 일치한 문자 이전 값 참조
    • $’ : 문자 대체(replace) 시 일치한 문자 이후 값 참조
    • $+ : 문자 대체(replace) 시 마지막으로 캡처된 값 참조
    • $& : 문자 대체(replace) 시 일치한 문자 결과 전체 참조
    • $_ : 문자 대체(replace) 시 입력(input)된 문자 전체 참조
    • $n : 문자 대체(replace) 시 n번째 부분 표현식 문자 값 참조 (n은 1~99)

 

String.split()

  • 첫번째 인수로 전달한 문자열 또는 정규표현식을 대상 문자열에서 검색하여 문자열을 구분한 후 분리된 각 문자열로 이루어진 배열을 반환한다.
  • 원본 문자열은 변경되지 않는다.
  • 인수가 없는 경우, 대상 문자열 전체를 단일 요소로 하는 배열을 반환한다.
const str = 'How are you doing?'

// 공백으로 구분하여 배열로 반환
console.log(str.split(' ')) // [ 'How', 'are', 'you', 'doing?' ] 

// 각 문자를 모두 분리
console.log(str.split('')) 
// [ 'H','o','w',' ','a','r','e',' ','y','o','u',' ','d','o','i','n','g','?' ] 

// 정규 표현식 
console.log(str.split(/\\s/)) // [ 'How', 'are', 'you', 'doing?' ] 

// 인수가 없는 경우, 대상 문자열 전체를 단일 요소로 하는 배열을 반환
console.log(str.split()) // [ 'How are you doing?' ] 

// 공백으로 구분하여 배열로 반 (단, 요소수는 3개까지만 허용한다)
console.log(str.split(' ', 3)) // [ 'How', 'are', 'you' ] 

// 'o'으로 구분하여 배열로 반환
console.log(str.split('o')) // [ 'H', 'w are y', 'u d', 'ing?' ]

 

String.slice()

  • 문자열의 일부를 추출하면서 새로운 문자열을 반환한다. (substring과 동일)
  • 단, 음수의 인수를 전달할 수 있다. (substring과 차이)
const str = 'hello world'

// 인수 < 0 또는 NaN인 경우 : 0으로 취급
str.substring(-5) // 'hello world' 
// 뒤에서 5자리를 잘라내어 반환
str.slice(-5) // 'world' 

// 2번째부터 마지막 문자까지 잘라내어 반환 
str.substring(2) // llo world 
str.slice(2) // llo world 

// 0번째부터 5번째 이전 문자까지 잘라내어 반환 
str.substring(0, 5) // hello 
str.slice(0, 5) // hello

 

String.repeat()

  • 문자열을 주어진 횟수만큼 반복해 연결한 새로운 문자열을 반환한다.
  • count가 0이면 빈 문자열을 반환하고 음수이면 RangeError를 발생시킨다.
'abc'.repeat(0) // '' 
'abc'.repeat(1) // 'abc' 
'abc'.repeat(2) // 'abcabc' 
'abc'.repeat(2.5) // 'abcabc' (2.5 → 2) 
'abc'.repeat(-1) // RangeError: Invalid count value

 

String.includes()

  • 인수로 전달한 문자열이 포함되어 있는지를 판별하고, 결과를 true 또는 false로 반환한다.
  • 두번째 인수는 옵션으로 검색할 위치를 나타내는 정수이다.
const str = 'hello world'

str.includes('hello') // true 
str.includes('hello', 0) // true 
str.includes('hello', 2) // false 

 

String.toLowerCase()

  • 문자열을 소문자로 변환해 반환한다.
const str = 'Hizini' 
console.log(str.toLowerCase()) // 'hizini'

 

String.toUpperCase()

  • 문자열을 대문자로 변환해 반환한다.
const str = 'Hizini' 
console.log(str.toUpperCase()) // 'HIZINI'

 

String.trim()

  • 문자열 양 끝의 공백을 제거한다.
const str = ' Hizini ' 
console.log(str.trim()) // 'Hizini'
반응형