본문 바로가기

Language/Javascript

[Javascript] 문자열 메소드(String methods)

728x90
반응형

문자열 여러 줄

백슬래시(`)로 감싸 여러 줄을 입력하거나 \n으로 줄바꿈을 할 수 있다.

let desc = `오늘은 맑고 화창한
날씨가 계속 되겠습니다.
내일은 비소식이 있습니다.`;

let desc = '오늘은 맑고 화창한\n날씨가 계속 되겠습니다.';

let desc = '오늘은 맑고 화창한  // error!
날씨가 되겠습니다.
내일은 비소식이 있습니다.';

 

특정 위치에 접근

let desc = '안녕하세요.';
desc[2]  // '하'

desc[4] = '용';
console.log(desc);  // 안녕하세요.

한 글자만 바꾸는 것은 허용되지 않는다.

 

문자열 길이 : str.length

let desc = '안녕하세요.';
desc.length  // 6

 

검색 : str.indexOf(text), str.lastIndexOf(text)

없으면 -1 반환

let desc = "Hi guys. Nice to meet you.";
desc.indexOf('to');     // 14
desc.indexOf('o');      // 15
desc.lastIndexOf('o');  // 23
desc.indexOf('man');    // -1 

if(desc.indexOf('Hi')){
    console.log('Hi가 포함된 문장입니다.');
}

 

대소문자 변환 : str.toUpperCase(), str.toLowerCase()

let desc = "Hi guys. Nice to meet you.";
desc.toUpperCase();   // "HI GUYS. NICE TO MEET YOU."
desc.toLowerCase();   // "hi guys. nice to meet you."

 

치환 : str.replace(t1, t2), str.replaceAll(t1, t2)

(str.replaceAll은 ES2021에 추가된 기능)

t1은 바꿀 대상, t2는 치환자

replace는 첫 번째 문자만 바꿔주는데 replaceAll은 모든 문자열에 적용된다.

replace를 모든 문자열에 적용하려면 정규 표현식을 사용해야한다.

const str = "Hello World";
console.log(str.replace("l", "~"));     // He~lo World
console.log(str.replaceAll("l", "~"));  // He~~o Wor~d

console.log(str.replace(/l/g, "~"));    // He~~o Wor~d

 

추출 : str.slice(n, m)

n : 시작점

m : 없으면 문자열 끝까지 / 양수는 그 숫자까지(포함하지 않음) / 음수는 끝에서부터 셈

let desc = "abcdefg";

desc.slice(2)  // "cdefg"
desc.slice(0, 5)  // "abcde"
desc.slice(2, -2)  // "cde"

 

추출 : str.substring(n, m)

n과 m 사이 문자열 반환. n 인덱스 이상, m 인덱스 미만

let desc = "abcdefg";

desc.substring(2, 5);  // "cde"
desc.substring(5, 2);  // "cde"

 

추출 : str.substr(n, m)

n은 시작 인덱스, m은 자를 문자열 개수

let desc = "abcdefg";

desc.substr(2, 4)  // "cdef"
desc.substr(-4, 2)  // "de"

 

앞 뒤 공백 제거 : str.trim()

let desc = "  coding        ";
desc.trim();   // "coding"

 

분할 : str.split(구분자)

var names = "홍길동,아무개,하하하,호호호";
names.split(",");    // ["홍길동", "아무개", "하하하", "호호호"]

 

문자열 비교

1 < 3  // true
"a" < "c"  // true

"a".codePointAt(0);  // 97
String.fromCodePoint(97);  // "a"

728x90
반응형