티스토리

운클라우드
Wooncloud Blog
운클라우드
  • 분류 전체보기
    • 이야기
      • 일기
      • 개발일지
      • 제품 리뷰
      • 기타
    • 정보
      • 유용한 사이트
    • 개발 아카이브
      • HTML, CSS
      • Javascript
      • SVELTEKIT
      • Node Js
      • JAVA
      • Spring
      • 코드 저장소
      • 라이브러리
      • 개발 관련 지식
      • AWS, Cloud, Server
      • DATABASE
    • 스터디
      • 정보처리기사
      • 친절한 SQL 튜닝 스터디

블로그 메뉴

  • 홈
  • 방명록
  • 운구름 웹
  • 벨로그
  • 깃허브
  • 리틀리
  • 도시부엉

인기 글

최근 글

태그

  • API
  • 튜닝
  • 자바
  • TurboFan
  • 마크다운
  • CSS
  • 자바스크립트
  • SQL
  • 회고
  • 정보처리기사
  • javascript
  • 폰트
  • Java
  • 스터디
  • 코드저장소
  • 라이브러리
  • html
  • 웹디자인
  • 이클립스
  • 리뷰
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
운클라우드

Wooncloud Blog

[자바스크립트] String에 대해 알아보자.
개발 아카이브/Javascript

[자바스크립트] String에 대해 알아보자.

2023. 2. 12. 00:14
반응형

js string

이번 글또를 위한 포스팅을 위해 자바스크립트에 대한 지식을 공부 겸 포스팅해보려고 합니다. 이번에 알아볼 내용은 자바스크립트 String에 대한 내용입니다. 

자바스크립트에서는 리터럴인 문자열을 다룰 때 사용하는 String이라는 객체가 있습니다. 이 String 객체는 문자열을 생성하거나, 검색, 치환, 추출, 분할 등의 작업을 수행할 수 있는 다양한 메소드를 제공합니다.

이번 포스트에서는 전체적으로 어떤 메소드가 있는지 간략하게 설명하고, 차후 몇몇 메소드에 대한 디테일한 내용을 다뤄볼까 합니다.

 

javascript Property

length

length : 문자열의 길이를 반환합니다.

'hello world'.length // 11

 

javascript Method

at

at(index) : 문자열 내의 특정 인덱스에 있는 문자를 반환합니다.

문자열의 인덱스는 0부터 시작하며, 문자열의 길이보다 큰 숫자를 입력하면 undefined가 반환됩니다.

'Hello World'.at(0); // 'H'
'Hello World'.at(6); // 'W'
'Hello World'.at(11); // undefined

charAt

charAt(index) : 주어진 인덱스에 해당하는 문자를 반환합니다.

만약 입력하는 index가 문자열 범위를 넘어가는 경우 빈 문자열을 반환합니다.

let str = "Hello World";
str.charAt(1); // 'e'
str.charAt(99); // ''
str.charAt(-1); // ''

charCodeAt

charCodeAt(index) : 주어진 인덱스에 해당하는 문자의 UTF-16 코드를 반환합니다. charCodeAt을 통해서 문자열에서 특정 위치의 문자에 대한 Unicode 값을 얻을 수 있습니다.

'hello'.charCodeAt(1) // 101
'와우'.charCodeAt(0); // 50752
'a'.charCodeAt(-1) // NaN
'b'.charCodeAt(10) // NaN

codePointAt

codePointAt(pos) : 문자열의 pos 위치에 있는 문자의 유니코드 코드 포인트 값을 반환합니다.

"Hello, World!".codePointAt(0); // 72

fromCharCode

fromCharCode(unicode) : ASCII 코드 값으로 구성된 숫자 배열을 통해 문자열을 생성하는 기능을 제공합니다.

fromCharCode는 적절한 경우에는 간단하고 편리한 방법으로 문자열을 생성할 수 있습니다. 하지만 유니코드 문자를 처리해야 한다면, String.fromCodePoint() 메소드를 사용하는 것이 더 좋은 방법입니다.

// 65는 A의 ASCII 코드 값
let char = String.fromCharCode(65);
console.log(char); // "A"

// A~Z의 ASCII 코드 값을 가진 문자열 만들기
let str = '';
for (let i = 65; i <= 90; i++) {
  str += String.fromCharCode(i);
}
console.log(str); // "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

fromCodePoint

fromCodePoint(num1[, ...[, numN]]) : 자바스크립트에서 문자열을 생성할 때, 유니코드 코드 포인트 값으로 구성된 숫자 배열을 사용하여 문자열을 생성할 수 있는 기능을 제공하며, ES6 이상에서 사용 가능합니다.

다시 말해 UTF-16의 모든 값을 지원하기 때문에, 다양한 언어의 문자와 이모지 등을 표현하는데 사용할 수 있습니다.

console.log(String.fromCodePoint(72, 101, 108, 108, 111)); // "Hello"
console.log(String.fromCodePoint(128516)); // "😊"
console.log(String.fromCodePoint(0x1F600)); // "😀"
console.log(String.fromCodePoint(119989)); // "💯"

concat

concat(string1, string2, ...) : 여러 개의 문자열을 합쳐서 하나의 문자열로 반환합니다.

let str1 = "Hello";
let str2 = " World";
str1.concat(str2); // "Hello World"

indexOf

indexOf(searchValue, start) : 주어진 값을 찾아 첫 번째로 발견한 인덱스를 반환합니다.

let str = "Hello World";
str.indexOf("World"); // 6
str.indexOf("world"); // -1

lastIndexOf

lastIndexOf(searchValue, start) : 주어진 값을 찾아 마지막으로 발견한 인덱스를 반환합니다.

let str = "Hello World, Hello World";
str.lastIndexOf("World"); // 13
str.lastIndexOf("world"); // -1

localeCompare

localeCompare(compareString, locales, options) : 두 개의 문자열을 비교하여 먼저 오는 문자열이 뭔지 -1, 0, 1로 반환합니다.

  • 첫 번째 문자열이 두 번째 문자열보다 앞에 오는 경우 -1을 반환
  • 두 번째 문자열이 첫 번째 문자열보다 앞에 오는 경우 1을 반환
  • 두 번째 문자열과 첫 번째 문자열이 같은 경우 0을 반환
"apple".localeCompare("banana"); // -1
"banana".localeCompare("apple"); // 1
"apple".localeCompare("apple"); // 0

localeCompare()는 문자열 정렬에 유용하게 사용하고 locale을 고려하여 문자열을 비교합니다. locale은 국가, 언어, 타자기, 날짜 형식, 숫자 형식 등의 정보들을 포함하죠.

예를 들어, 미국과 영국의 영어는 각각 다른 지역 정보를 갖습니다. 그래서 같은 문자열이라도 localeCompare() 메서드를 사용하여 비교할 때 결과가 달라질 수 있습니다.

미국 영어와 영국 영어의 단어 정렬 순서는 다릅니다. "colour"와 "color"는 미국 영어에서는 같은 단어지만, 영국 영어에서는 다릅니다. localeCompare()를 사용하여 비교할 때, "colour"가 "color"보다 앞에 오는 경우가 있습니다.

// 미국은 소문자가 정렬순서 앞, 영국은 대문자가 정렬순서 앞.
var str1 = "civic";
var str2 = "Civic";

str1.localeCompare(str2, 'en-US'); // -1
str1.localeCompare(str2, 'en-GB'); // 1

slice

slice(start, end) : 문자열의 start 위치부터 end 위치 전까지의 문자열을 잘라내어 반환합니다.

let str = "Hello, World!";
str.slice(7, 13); // "World"

substring

substring(start, end) : 주어진 시작 인덱스와 끝 인덱스 사이의 문자열을 추출하여 반환합니다.

let str = "Hello World";
str.substring(3,7); // "lo W"

replace

replace(str, replaceStr) : 문자열에서 searchValue를 replaceValue로 대체하여 새로운 문자열을 반환합니다.

let str = "Hello World";
str.replace("World", "javascript"); // "Hello javascript"

let str = "Hello World";
str.replace(/world/i, "javascript"); // "Hello javascript"

replaceAll

replaceAll(str, replaceStr) : 주어진 정규표현식 또는 텍스트에 해당하는 모든 문자열을 새 문자열로 교체합니다.

let str = "The quick brown fox jumps over the lazy dog.";
let replaced = str.replaceAll("o", "*");
console.log(replaced);
// "The quick br*wn f*x jumps *ver the lazy d*g."

toLowerCase

toLowerCase() : 문자열을 소문자로 변환하여 반환합니다.

let str = "Hello World";
str.toLowerCase(); // "hello world"

toLocaleLowerCase

toLocaleLowerCase() : 각 문자열에 해당하는 문자의 locale에 맞는 소문자로 변환하여 반환합니다.

toLowerCase()와의 차이점은, toLowerCase()는 문자열의 모든 문자를 영어의 소문자로 변환하여 반환하는 반면, toLocaleLowerCase()는 문자열의 문자를 각 문자에 해당하는 locale의 소문자로 변환하여 반환합니다.

let str = "HELLO WORLD";

str.toLocaleLowerCase();  // "hello world"
str.toLocaleLowerCase('de-DE');  // "hello world"
str.toLocaleLowerCase('tr-TR');  // "merhaba dünya"

toUpperCase

toUpperCase() : 문자열을 대문자로 변환하여 반환합니다.

let str = "Hello World";
str.toUpperCase(); // "HELLO WORLD"

toLocaleUpperCase

toLocaleUpperCase() : 각 문자열에 해당하는 문자의 locale에 맞는 대문자로 변환하여 반환합니다.

toUpperCase()와의 차이점은, toUpperCase()는 문자열의 모든 문자를 영어의 대문자로 변환하여 반환하는 반면, toLocaleUpperCase()는 문자열의 문자를 각 문자에 해당하는 locale의 대문자로 변환하여 반환합니다.

let string = "Hello World";
string.toUpperCase(); // HELLO WORLD
string.toLocaleUpperCase("en-GB"); // HELLO WORLD

trim

trim() : 문자열의 앞뒤 공백을 제거하여 반환합니다.

let str = "    Hello World    ";
str.trim(); // "Hello World"

trimStart

trimStart() : 문자열 앞의 공백을 제거합니다.

let str = "   Hello World   ";
str.trimStart(); // "Hello World   "

trimEnd

trimEnd() : 문자열 뒤의 공백을 제거합니다.

let str = "   Hello World   ";
str.trimEnd(); // "   Hello World"

split

split(separator, limit) : 문자열을 separator를 기준으로 분리하여 배열로 반환합니다. limit를 지정하면, 분리할 최대 개수를 지정할 수 있습니다.

let str = "Hello World";
str.split(" "); // ["Hello", "World"]
str.split("", 3); // ["H", "e", "l"]

repeat

repeat(count) : 문자열을 입력받은 count 만큼 반복하여 새로운 문자열을 반환합니다.

let str = "Hello";
str.repeat(3); // "HelloHelloHello"

includes

includes(searchString, start) : 문자열에 searchString이 포함되어 있는지 검사하여 포함되어 있으면 true, 아니면 false를 반환합니다. start를 지정하면, 검색을 시작할 인덱스를 지정 할 수 있습니다.

let str = "Hello World";
str.includes("World"); // true
str.includes("world"); // false
str.includes("World",6); // true

startsWith

startsWith(searchString, length) : 문자열이 지정한 문자열로 시작하는지 확인합니다. 문자열이 지정한 문자열로 시작하면 true를, 아니면 false를 반환합니다. length를 지정하면, 검색을 시작할 인덱스를 지정 할 수 있습니다.

let string = "Hello World";
string.startsWith("Hello"); // true
string.startsWith("HELLO"); // false
string.startsWith("o", 4);  // true
string.startsWith("o", 5);  // false

endsWith

endsWith(searchString, length) : 문자열이 searchString으로 끝나는지 검사하여 끝나면 true, 아니면 false를 반환합니다. length를 지정하면, 검색을 시작할 인덱스를 지정 할 수 있습니다.

let str = "Hello World";
str.endsWith("World"); // true
str.endsWith("world"); // false
str.endsWith("o", 8); // true

match

match(regex) : 문자열에서 정규식과 일치하는 부분을 배열로 반환합니다.

let str = "Hello World";
str.match(/[a-z]/g); // ["e", "l", "l", "o", "o", "r", "l", "d"]

matchAll

matchAll(regex) : 문자열에서 주어진 정규식에 대한 모든 결과를 찾아 배열로 반환합니다. 이 객체의 각 요소는 매치 결과 객체이며, 패턴과 그에 대한 인덱스, 원본 문자열에 대한 정보를 포함합니다.

let str = "Hello World. How are you today?";
let regex = /\b\w+\b/g;
let matchArray = [...str.matchAll(regex)];
console.log(matchArray);
/*
[
  Array(3) ["Hello", index: 0, input: "Hello World. How are you today?"],
  Array(3) [ "World", index: 6, input: "Hello World. How are you today?"],
  Array(3) [ "How", index: 12, input: "Hello World. How are you today?"],
  Array(3) [ "are", index: 16, input: "Hello World. How are you today?"],
  Array(3) [ "you", index: 20, input: "Hello World. How are you today?"],
  Array(3) [ "today", index: 24, input: "Hello World. How are you today?"]
]
*/

padStart

padStart(targetLength, padString) : 문자열의 시작 부분에 padString을 추가하여 targetLength만큼의 길이를 갖도록 합니다.

let str = "Hello World";
str.padStart(15, "hi "); // "hi hi Hello World"

padEnd

padEnd(targetLength, padString) : 문자열의 끝부분에 padString을 추가하여 targetLength만큼의 길이를 갖도록 합니다.

let str = "Hello World";
str.padEnd(15, " hi"); // "Hello World hi hi"

normalize

normalize() : 문자열을 Unicode 정규화 형식으로 변환합니다.

let str = "Å";
str.normalize(); // "A\\u030a"

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'개발 아카이브 > Javascript' 카테고리의 다른 글

JavaScript에서 export { }와 export default의 차이점  (0) 2024.05.15
Shadow DOM - DOM을 캡슐화 하자!  (0) 2023.05.14
자바스크립트 객체 관리와 V8엔진 히든클래스  (0) 2022.06.16
자바스크립트 맵 객체 (Javascript Map Object)  (0) 2022.06.15
[자바스크립트] console.log를 다양하게 쓰자. console 객체  (3) 2022.01.20
    '개발 아카이브/Javascript' 카테고리의 다른 글
    • JavaScript에서 export { }와 export default의 차이점
    • Shadow DOM - DOM을 캡슐화 하자!
    • 자바스크립트 객체 관리와 V8엔진 히든클래스
    • 자바스크립트 맵 객체 (Javascript Map Object)

    티스토리툴바