[TIL] 문자열 공백 제거

이재훈·2020년 9월 14일
0

이것 또한 나를 괴롭혔던 놈들로부터 해방시켜준 메소드이다.

🌱 앞, 뒤 공백제거

str.trim()

문자열 양 끝의 공백을 제거하는 기능을 가지고 있다.

	let awesome = '  potter is awesome  '
    
    console.log(awesome.trim()) /// 'potter is awesome'

만약, string.ptototype.trim()을 사용하지 말라는 조건이 붙는다면...

-->

replace(정규식)

브라우저에 따라 trim()이 오작동이 될 경우도 있다고 한다.
그에 대한 대체 방법이다.

	let awesome = '  potter is awesome  '
    
    console.log(awesome.replace(/^\s+|\s+$/gm, ''));

[참고] replace()
searchValue, newValue의 총 두개의 파라미터를 받는다.
seachValue에는 문자열 혹은 정규식을 넣을 수 있다고 한다.

	string.replace(searchValue, newValue);

ex)
let potter = '잘a생a김a';
console.log(potter.replace(/a/g,''));
	// "잘생김"
console.log(potter.replace(/a/gi,''));
	// "잘생김"

즉, 문자를 교체하는 것이기 때문에 공백이 아니라도 가능하다.

하나 더 나아가자면,


[g vs gi]

	let potter = '잘a생A김a';

	console.log(potter.replace(/a/g, ''));
	// "잘생A김"
	console.log(potter.replace(/a/gi, ''));
	// "잘생김"

위와 같이 g와 gi에 대한 차이를 볼 수 있는데

g 만 사용하면 대소문자를 구분
gi 는 i라는 옵션을 사용하여, 대소문자를 구분 x

정규식에 관하여는 좀 더 공부하고 포스팅 해야겠다.

🌱 모든 공백 제거

replace(정규식)

	let awesome = '  potter is awesome  '
    
    console.log(awesome.replace(/ /g, '') 
                // potterisawesome
    
    console.log(awesome.replace(/(\s*)/g, ''));
                // potterisawesome

만약 -> 정규식을 사용 x라면,
    console.log(awesome.replace(" ","") 
  // ' potter is awesome  '--> 제일 첫번째로 등장하는 space만 없어짐
  // 공백이 두개가 있었던 것이 한개로 줄어듦.
                
    따라서 '모든' 공백을 제거하려면 정규식을 사용해 replace()를 사용해야한다. 
	그게 아니라면 함수를 직접 만들거나.

🌱 앞 공백 제거

replace(정규식)


let awesome = '  potter is awesome  '
    
   console.log(awesome.replace(/^\s*/, ""));
		// 'potter is awesome  '

🌱 뒤 공백 제거


let awesome = '  potter is awesome  '
    
   console.log(awesome.replace(/\s*$/, ""));
		// '  potter is awesome'

Potter's thought :)

오늘은 공백 제거에 대한 공부를 하려했지만
어쩌다보니 정규식까지 건들게 되었다.

오늘의 포인트에 집중하기 위해 더이상의 스노우볼은 중단하고...

정규식에 관하여는 좀 더 공부하고 포스팅 해야겠다.

profile
코딩에서 인생을 배우다.

0개의 댓글