[JavaScript] 문자열 자르기

Yeoonnii·2022년 10월 25일
0

JavaScript

목록 보기
2/2

1. split()

구분자로 문자열 분리하여 배열로 리턴
string.split(splitter, limit);
인자로 구분자와 limit을 받는다
limit은 구분자로 분리할 문자열의 개수이다

1.1 구분자만 인자로 전달

구분자만 인자로 전달하면 문자열을 구분자로 분리하고 배열에 담아 리턴한다

INPUT

let str = 'Hello, World, Javascript';

console.log(str.split(','));

OUTPUT

[ 'Hello', ' World', ' Javascript' ]

1.2 구분자와 limit을 인자로 전달

limit은 구분자로 분리할 문자열의 개수가 된다
limit으로 0을 전달하면 빈 배열이 리턴되며, 1을 전달하는 경우 구분자로 1개의 문자열만 잘라서 배열로 리턴한다

INPUT

let str = 'Hello, World, Javascript';

console.log(str.split(',', 0));
console.log(str.split(',', 1));
console.log(str.split(',', 2));
console.log(str.split(',', 3));

OUTPUT

[]
[ 'Hello' ]
[ 'Hello', ' World' ]
[ 'Hello', ' World', ' Javascript' ]

1.3 구분자와 limit을 전달하지 않음

인자로 아무것도 전달하지 않으면 문자열 전체를 배열에 담아 리턴한다
이때 리턴값은 길이가 1인 배열이 된다

INPUT

let str = 'Hello, World, Javascript';

console.log(str.split());

OUTPUT

[ 'Hello, World, Javascript' ]

1.4 정규표현식(Regex)으로 문자열 자르기

정규표현식을 인자로 전달하여 문자를 자를 수 있다

INPUT

let str = 'Hello,World?Java!script';
let arr = str.split(/[!,?]/);

console.log(arr);

OUTPUT

[ 'Hello', 'World', 'Java', 'script' ]

1.5 Destructuring(구조화)

아래와 같이 [a, b, c]처럼 리턴받는 경우, 각각의 변수에 값이 저장된다

INPUT

let str = 'Hello World Javascript';

let [a, b, c] = str.split(' ');

console.log(a);
console.log(b);
console.log(c);

OUTPUT

Hello
World
Javascript

2. substr()

특정 Index에서 원하는 길이만큼 잘라서 문자열로 리턴

str.substr(start , length)
start는 Index이며 이 Index부터 인자로 전달한 길이만큼 문자열을 잘라서 문자열로 리턴한다

substr(5)처럼 start만 전달하면 start부터 문자열의 마지막까지 잘라서 리턴한다
substr(0, 5)는 Index 0부터 길이 5 만큼 문자열을 잘라 리턴한다

INPUT

let str = 'HelloWorldJavascript';

let a = str.substr(5);
let b = str.substr(0, 5);
let c = str.substr(0, 10);

console.log(a);
console.log(b);
console.log(c);

OUTPUT

WorldJavascript
Hello
HelloWorld

2.1 start가 음수일 때

start가 음수면 문자열 마지막에서 앞쪽으로 숫자만큼 이동한 것이 start Index가 된다
아래 예제에서 Index -6은 Index 15가 된다

INPUT

let str = 'HelloWorldJavascript';

let a = str.substr(-6);
let b = str.substr(-6, 3);
let c = str.substr(-6, 5);

console.log(a);
console.log(b);
console.log(c);

OUTPUT

script
scr
scrip

3. substring()

시작 Index에서 끝 Index 전까지 문자열을 잘라서 리턴

str.substring(start, end)
substring()의 Syntax는 Index start를 포함하고 Index end를 포함하지 않는 문자열을 잘라서 리턴한다

INPUT

substring(6)처럼 start만 전달하면 start부터 마지막까지 문자열을 자른다
substring(6, 8)은 Index 6부터 Index 8을 포함하지 않는 Index 7까지 문자열을 자릅니다.

let str = 'Hello World Javascript';

let a = str.substring(6);
let b = str.substring(6, 8);
let c = str.substring(6, 0);

console.log(a);
console.log(b);
console.log(c);

OUTPUT

World Javascript
Wo
Hello

4. slice()

substring과 비슷하지만 살짝 다른 메소드

str.slice(start, end)
slice()의 Syntax는 위와 같고, 보시는 것처럼 substring()과 동일하다
동작도 거의 비슷한데 약간 차이가 있다

아래 예제는 위의 substring()의 예제에서 키워드만 slice()로 변경되었다
거의 비슷하게 동작하기 때문에 결과는 동일하다

INPUT

let str = 'Hello World Javascript';

let a = str.slice(6);
let b = str.slice(6, 8);
let c = str.slice(6, 0);

console.log(a);
console.log(b);
console.log(c);

OUTPUT

World Javascript
Wo
Hello

4.1 slice와 substring의 차이점

인자로 음수가 전달되었을 때, substring()은 빈 문자열을 리턴한다
하지만 slice()는 음수 Index를 적용하여 문자열을 자른다

INPUT

let str = 'Hello World Javascript';

let a = str.substring(0, -6);
let b = str.slice(0, -6);

console.log(a);
console.log(b);

OUTPUT

결과를 보면 substring은 빈 문자열을 리턴하였지만,
slice는 0에서 15(-6)까지 자른것을 알 수 있다

Hello World Java

참고링크

0개의 댓글