IT/JavsScript

자바스크립트(Javascript) 문자열 자르기(substr, split)

라임웨일 2021. 3. 11. 16:54
반응형

 

데이터(Data)의 값을 잘라서 다시 자신이 원하는 값만 다시 추출하는 방법은 생각보다 많이 사용됩니다. 데이터의 가공에도 필요하고 전달받은 값 중 특정값만 필요한 경우에도 사용하게 되죠.

 

문자열을 자르는 방법을 이해하고 정리한다면 분명 코드를 사용함에 도움이 될 거라 생각합니다. 

문자열을 자르는 가장 일반적인 방법은 자바스크립트의 [substr] 를 이용하는 방법입니다. [substr]를 사용하여 잘라낼 문자열 위치의 가장 앞쪽 시작 값은 1이 아닌 0부터 시작합니다.(전에도 한번 말씀드렸지만 컴퓨터는 0부터 인식합니다.)

 

즉, 0,1,2.. 순서로 시작한다는 말인데 'apple' 이라는 단어를 예로 들면 a가 0, p가 1이 되는 것이에요.

 

1. 문자열을 앞에서 순차적으로 자르는 방법

기본 방식은 '변수.substr( 시작 값(자를 위치), 자를 개수 )' 형식으로 선언합니다.

php의 경우 substr(변수, 시작값(자를 위치), 자를 개수) 형식으로 사용합니다.

const num = "123456789";
const result1 = num.substr(0,3);
alert(result1); //결과 : 123

const result2 = num.substr(3,4);
alert(result2); //결과 : 4567

 

위의 방법은 문자열을 앞에서부터 잘라서 사용하는 방법입니다.

 

그럼 가령 "동해물과 백두산이 마르고 닳도록"라는 내용이 있는데 정작 나에게 필요한 내용은 문자열 가장 뒤에 있는 A라는 한 글자일 때 앞에서부터 문자열을 자르면 굉장히 비효율적이게 됩니다. 더욱이 문자열의 내용이 고정값이 아닌 가변 값일 경우에는 앞에서부터 문자열을 자른다는 것은 사실상 불가능합니다. 이럴때 문자열을 뒤에서부터 잘라서 사용하는 방법을 알아볼게요.

 

2. 문자열을 뒤에서부터 자르는 방법

전체 문자열의 길이(length) 값에서 음수 값을 주어서 역순으로 값을 조회합니다.

const testStr = "ABCDEFGHIJKLMN"
// testStr = testStr.substr(전체문자열 - 가져올문자길이 , 가져온 문자에서 출력할 문자(순서는 뒤 → 앞));

testStr = testStr.substr(testStr.length - 4, 2); // 결과 : KL
testStr = testStr.substr(testStr.length - 4, 4); // 결과 : KLMN
testStr = testStr.substr(testStr.length - 1, 1); // 결과 : N

 

마지막으로 알아볼 방법은 전달받은 문자열에 특정 기호나 공백 등의 문자열을 이용해서 값을 자르는 방법입니다. 자르려고 하는 값(기호나 공백) 기준으로 값이 배열에 저장되며 배열의 처음 값은 0부터 시작됩니다.

 

3. 특정 기호를 이용해서 자르는 방법

var num = "123-456-7890";
var result = num.split("-");

alert(result[0]); //결과 : 123
alert(result[1]); //결과 : 456
alert(result[2]); //결과 : 7890

// 기호 '|'를 기준으로 문자열을 자른 예
var str = 한국|미국|일본|중국|브라질|영국
var result2 = str.split("|");

alert(result2[0]); //결과 : 한국
alert(result2[1]); //결과 : 미국
alert(result2[2]); //결과 : 일본
alert(result2[3]); //결과 : 중국
alert(result2[4]); //결과 : 브라질
alert(result2[5]); //결과 : 영국

 

자바스크립트 문자열 자르기가 도움이 되었다면 String 객체에 대해서도 살펴보면 더 좋을거 같아요. 우리가 알아본 문자열 자르기부터 문자의 결합, 특정 문자열 찾기등 String 객체에 관한 내용이 정리되어 있습니다.

 

감사합니다.

반응형
광고차단(애드블록)프로그램이나 브라우저를 사용중이시면 프로그램을 비활성화이나 블로그 주소를 예외 처리 해주시면 광고가 노출됩니다. 귀찮고 번거롭겠지만 광고 클릭은 저에게는 큰 힘이 됩니다. 🙇🏻‍♂️🙇🏻‍♀️
제 블로그의 모든 글은 제가 직접 작성 하고 다른 글을 참고할 때는 이전 글보다 읽기 편하게 수정해서 작성하고 있습니다. 커피 한잔 사먹고 더 열심히 좋은글로 보답하겠습니다.
오늘도 제 블로그에 와 주셔서 감사합니다. :)
//