본문 바로가기
JavaScript

[JS] split 함수 빈칸 제거 안됨 해결:: non breaking space

by pocket.dev 2024. 6. 28.
반응형

javascript logo

 

split 함수를 써서 빈칸을 기준으로 문장을 나누려고 했다.

그런데 문장 일부는 빈칸 기준으로 나뉘어지고, 다른 일부는 빈칸 기준으로 나누어지지 않는 현상을 발견했다.

아래 이미지에서 두 케이스의 다른 점이 보이는가?

첫 번째 줄은 정상적으로 빈칸을 기준으로 문장이 나뉘어진 것을 확인할 수 있는데, 두 번째 줄은 결과 어레이의 첫 번째 값을 보면 'an apple'이 나뉘어지지 않은 것을 확인할 수 있다.

split(' ')이 먹히지 않는 현상

 

두 케이스의 차이점은 문장에 'non breaking space'를 썼다는 것이다.

non breaking space는 윈도우: alt+space, 맥: option+space 를 사용했을 때 만들어지는 공백이다.

또는 html에서  를 썼을 때 만들어지는 공백이다.

흔히 스페이스바만을 눌러서 생성되는 공백과는 다른 것이다.

이때, split(' ')를 사용해서 문장을 나누려고 한다면 non breaking space는 일반 whitespace(공백)에 해당하지 않으므로 나뉘어지지 않는 것이다.

 

이럴땐 정규식을 사용하면 된다.

  • \s: whitespace(공백)
  • \s+: 한 번 이상 반복되는 whitespace
'an apple is a fruit'.split(/\s+/);

 

정규식(regex) 사용 예시

 

mixedSentence는 non breaking space(alt/option + space)와 일반 whitespace(space)로 이루어진 문장이다.

첫 번째로 split(' ')를 사용했을 때는 모든 공백에 대해서 문장이 나누어지지 않은 것을 확인할 수 있다.

그 반면에 두 번째로 정규식을 활용하여 split(/\s+/)를 사용했을 때는 모든 공백에 대해서 문장이 나누어지는 것을 확인할 수 있다.

 

반응형

'JavaScript' 카테고리의 다른 글

[JavaScript] 숫자 3자리마다 콤마 넣기  (0) 2024.05.17
new Date() timezone 적용하기  (0) 2024.04.10
Buy Me A Coffee