브렌쏭의 Veritas_Garage

문자열 조작: String.Methods[Day06] 본문

[Project_하다]/[Project_공부]

문자열 조작: String.Methods[Day06]

브렌쏭 2022. 3. 21. 11:24

어쩌고 저쩌고, 블라블라 블라 하다 보면 문자열에는 온갖 띄어쓰기와 대소문자들이 난무한다.

따라서 컴퓨터가 알아들을 수 있게 문자열을 적절히 조작하는 법을 알아야하겠다.

1. String.prototype.trim()

뭔가를 트림한다고 한다면 보통 가장자리를 깔끔하게 잘라내는 걸 떠올린다. 그래서 trim은 문자열 양쪽 끝에 있을 수 있는 공백을 지워준다. 물론 메소드이므로, 함수이고, 그래서 괄호는 붙여줘야한다.

let str = " sample text ";

console.log( str.trim() ) // "sample text"

앞뒤로 있던 띄어쓰기가 사라졌다. 이외에도 탭도 날려준다.

1-1. trimStart() 와 trimEnd()

앞뒤를 일괄로 날려버리니 그러고 싶지 않을 때도 있을터, 따라서 앞만 날리거나 뒤만 날리는 법도 있다.

let str = " sample text ";

console.log( str.trimStart() ) // "sample text "
let str = " sample text ";

console.log( str.trimEnd() ) // " sample text"

미세한 차이를 잘 보아라.

2. String.prototype.padStart() 와  String.prototype.padEnd()

문자열의 특정 구간만 마스킹하거나 패딩을 덧대서 가릴때 사용한다. 주민등록번호나 아이디나 비밀번호나 여러가지를 가릴때 응용가능하다.

const str = "5";

console.log(str.padStart(4,"*"));  //***5
console.log(str.padEnd(4,"$"));    //5$$$

3. ES6는 신인가?

ES6에 들어 새롭게 등장한 메소드들이 있다. 몹시 요긴하게 쓰이거나, 구현하기 더럽게 귀찮을만도 한 기능들을 미리 만들어 넣어줬다.

3-1. String.prototype.includes()

말 그대로 포함되어있는지 알려준다. 리턴값은 True or False. 찾으려는 문자와, 몇번째 부터 찾을지도 지정가능하다.

const message = "Every dog has his day";

const result1 = message.includes("dog");
console.log(result1); // true

const result2 = message.includes("dog", 7);
console.log(result2); // false

몹시 편리하다..

3-2. String.prototype.startsWith() 와  String.prototype.endsWith()

대상 문자열이 내가 지정한 문자열로 시작하는지, 혹은 지정한 문자열로 끝나는지 찾아낸다. 반환값은 역시 참과 거짓.

뭐...주민등록번호 뒷자리 시작번호를 보고 성별을 확인하거나, 이메일이 어느 도메인으로 끝난다거나, includes() 와 조합하면 유효성검사로 종종 써먹을 수 있다. 

3-3. String.prototype.repeat()

이건 좀 웃긴데, 문자열을 쓰고 그 뒤에 리핏(5) 하면 5번 반복한 문자열을 뱉는다.

??? 뭐지 이스터에그인가 ??? 싶지만 실제로는 반복문 대신 깔끔하고 빠르게 문자열을 반복출력가능하다. 원하는 만큼!

'abc'.repeat(-1);   // RangeError
'abc'.repeat(0);    // ''
'abc'.repeat(1);    // 'abc'
'abc'.repeat(2);    // 'abcabc'
'abc'.repeat(3.5);  // 'abcabcabc' (count will be converted to integer)
'abc'.repeat(1/0);  // RangeError

4. String.prototype.concat()

놀랍게도 문자열끼리 붙여준다. 개꿀이며 솔직히 메소드 너무 많아서 다 적기가 힘들다. ("&" , 붙일문자열 ) 이런식으로 쓴다.

그러면 "문자열&붙일문자열" 이렇게 나옴.

5+++++. 정규표현식

진짜 상남자는 정규표현식을 쓴다는데 난 그런거 될 생각이 없어서 안쓸거다. 꺼져

Comments