JS

18-3 JS 문자열3

와라리요 2022. 11. 21. 16:00

문자열 비교하기

 - 문자열은 알파벳 순서를 기준이며 소문자가 더 크다. 그 이유는 문자를 숫자를 바꾸는 아스크코드의 크기 때문이다.

'a' > 'Z'; // true

  예외로 문자열에 발음 구별 기호가 있으면 알파벳으로 인식하지 않는다.

'Österreich' > 'Zealand'; // true (Österreich는 오스트리아를 독일어로 표기한 것임 - 옮긴이)

 

  모든 문자열은 UTF-16을 사용해 인코딩되는데, UTF-16에선 모든 글자가 숫자 형식의 코드와 매칭된다. 코드로 글자를 얻거나 글자에서 연관 코드를 알아낼 수 있는 메서드는 다음과 같다.

 

1. str.codePointAt(index)

  index에 위치한 글자의 코드를 반환한다.

"z".codePointAt(0); // 122
"Z".codePointAt(0); // 90

 

2. String.fromCodePoint(code)

  숫자 형식의 code에 대응하는 글자를 반환한다.

String.fromCodePoint(90); // Z

 

\u 뒤에 특정 글자에 대응하는 16진수 코드를 붙이는 방식으로도 원하는 글자를 만들 수 있다.

// 90을 16진수로 변환하면 5a입니다.
'\u005a'; // Z

 

※ 문자열을 제대로 비교하기

str.localeCompare(str2)를 호출하면 ECMA-402에서 정의한 규칙에 따라 str이 str2보다 작은지, 같은지, 큰지를 나타내주는 정수가 반환하는데 작다면 음수, 크다면 양수, 같다면 0를 반환한다.

'a'.localeCompare('B'); // 1

  특이한 점은 같은 알파벳에서 소문자가 크다고 생각하고 'a'.localeCompare('A'); 넣으면 1이 나온다고 생각하지만 -1이 반환된다 그것은 여기를 참고하시면 됩니다~~

 


 

문자열 심화

 - 이 부분은 서로게이트 쌍, 발음 구별 기호와 유니코드 정규화 내용을 다룹니다. 필요하신 분들은 제목을 누르셔서 페이지에 넘어가셔서 공부해주세요~~

 

'JS' 카테고리의 다른 글

19-2 JS 배열2  (0) 2022.11.28
19-1 JS 배열1  (0) 2022.11.22
18-2 JS 문자열2  (0) 2022.11.18
18-1 JS 문자열1  (0) 2022.11.16
17 JS 숫자형  (0) 2022.11.15