자바스크립트 문자열

(2020-12-09)

자바스크립트 문자열 활용, 자바스크립트 문자열 다루기, 문자열 객체, String object, String 객체


1. 자바스크립트 문자열 활용 기초문자열 타입 
     - 6개 원시 데이터형 중 하나인, string 타입이지만, 
        . (문자열형,숫자형,논리값형,null,undefined,symbol : 6개)
     - 이에 대응하는 String 객체(래퍼 객체) 도움으로 좀 더 확장된 기능 구현이 가능 함

  ㅇ 문자열 리터럴 표현 (문자열 정의/초기화/만드는 방법)
     - 1 이상의 문자들을 '(작은따옴표) 또는 "(큰따옴표)로 둘러쌈
        . 한편, '' 또는 "" 안에서 특수 문자를 사용하려면,  ☞ 이스케이프 시퀀스(확장열) 참조

  ㅇ 문자열 병합/연결 
     - `+` 연산자를 사용하여 여러 문자열들을 하나로 연결 가능       ☞ 타입 변환 참조
        . 例) s = "AB" + "CD"; => "ABCD"

  ㅇ 문자열 내 문자 접근
     - 인덱스 번호로 지정 가능 (이때, 처음 문자는 `0`부터 시작)
        . 例) var s = "ABC"; s[0] => "A"
     - 그러나, 배열과 달리, 해당 인덱스 번호 표기로 해당 문자에 직접 대입 사용 불가
        . 例) s[0] = "A"; => (X)


2. 문자열 처리 객체 : String 객체String 객체 : 문자열의 부분 추출,가공,검색,변환 등을 위한 기능을 갖음

  ㅇ String 객체프로퍼티
     - 문자열 길이 : String.length
     - 문자열 생성자 : String.costructor
     - 문자열 프로토타입 객체 : String.prototype

  ㅇ String 객체메소드 : 아래 각 항들을 참조


3. 문자열 변환배열 -> 문자열
     - toString(), valueOf()  : 배열 각 요소를 쉼표로 구분시킨 문자열로써 반환
        . 例) ['a','b','c'].toString(); => "a,b,c"
     - join(separator) : 배열을 separator 구분자로 연결하여 하나의 문자열로 합쳐 반환
        . 例) ['a','b','c'].join('-'); => "a-b-c"

  ㅇ 날짜 -> 문자열
     - 例) var now = new Date(); date.toString();
             => 문자열 "Wed Oct 10 2018 13:53:17 GMT+0900 (한국 표준시)"로 변환 출력

  ㅇ 숫자 -> 문자열
     - toString()
        . 例) const n = 3.14; n.toString(); -> 문자열 "3.14"로 변환
     - toString(n) : n 진법 변환
        . 지정한 기수법(진법 체계, 2~36 가능)에 의한 문자열로 변환 출력
        . 例) numObject.toString(2) => 2진수, numObject.toString(16) => 16진수 등

  ㅇ 대소문자 바꾸기
     - toUpperCase() : 대문자로 변환 출력
     - toLowerCase() : 소문자로 변환 출력

  ㅇ 문자열 -> 배열
     - split(s [,limit]) : 문자열을 s로 분할시켜 그 결과를 배열로 변환 출력
        . 例) "aa bb cc".split(" ") => ["aa","bb","cc"]

  ㅇ 코드 번호 -> 문자열
     - fromCharCode(65,66,67) => "ABC"


4. 문자,문자열의 부분 추출문자열 추출
     - substring(start [,end])  : 문자열에서 start ~ end-1 까지 추출
        . 例) "Everything".substring(2,5) => "ery"
        . 例) "Everything".substring(-3) => "ing"

     - slice(start [,end]) : 위와 같으나, 시작과 끝 모두에 음(-) 인덱스 사용 가능 만 다름
        . 例) "Everything".slice(-5,-2) => "thi" (뒤부터 5번째 다음부터 2번째까지)
           .. 음(-) 인덱스 경우, 끝문자 인덱스가 0 이 아니고 -1 임
              

     - substr(start [,length])  : 문자열에서 start 부터 문자수 length 만큼 추출
        . 例) "Everything".substr(2,5) => "eryth"

  ㅇ 문자 또는 해당 문자의 코드 추출
     - charAt(n) : 대상 문자열의 n번째 문자
        . 例) "Everything".charAt(5) => "t"

     - charCodeAt(n) : 대상 문자열 n번째 문자의 UTF-16 코드10진수
        . 例) "Everything".charCodeAt(0) => 69 (문자 E의 ASCII 코드 번호)

     - codePoint At(n) : 대상 문자열 n번째 문자의 유니코드코드 포인트 값의 10진수
        . 例) "Everything".charCodeAt(0) => 69 (문자 E의 코드 포인트)

  ㅇ 例) 문자열 첫번째 글자를 대문자로 바꿈
     - str.charAt(0).toupperCase() + str.substring(1);


5. 문자열검색 및 부분 추출

  ㅇ 위치 반환
     - indexOf(s [, n])     : n번째 문자부터 문자열 s가 처음 나오는 위치 (실패시 -1 반환)
        . 例) "Everything".indexOf('t') => 5
        . 例) "time is bottle".indexOf('t',10) => 10 (10번째 이후 처음으로 나오는 't' 위치)

     - lastIndexOf(s [, n]) : n번째 문자부터 문자열 s가 마지막으로 나오는 위치
        . 例) "time is bottle".lastIndexOf('t') => 11 (문자열 뒤부분부터 검색)

  ㅇ 문자열 검색 추출
     - 문자열 내 특정 전후 구분자 사이에 있는 부분 문자열 추출 
     - substring과 indexOf와의 조합
        . targetStr.substring(targetStr.indexOf(startStr)+1,targetStr.indexOf(endStr));
     - substr과 indexOf와의 조합
        . var start = targetStr.indexOf(startStr);
        . var end = targetStr.indexOf(endStr,start+1);
        . targetStr.substr( start + 1, end - start );

  ㅇ 존재 여부 판별
     - startsWith(s [, n]) : n번째 문자부터 문자열 s로 시작하는지를 판별하는 논리값
     - endsWith(s [, n])   : n번째 문자부터 문자열 s로 끝나는지를 판별하는 논리값
     - includes(s [, n])   : n번째 문자부터 문자열 s를 포함하는지를 판별하는 논리값


6. 정규표현식에 의한 문자열 처리

  ※ ☞ 자바스크립트 정규표현식 참조
     - 문자열.search(패턴), 문자열.match(패턴), 문자열.replace(바뀔 문자열, 바꿀 문자열) 등


7. 기타공백문자 제거
     - trim() : 대상 문자열 앞뒤 공백문자 제거
  ㅇ 문자열 반복 연결
     - repeat(n) : 대상 문자열을 n번 반복 연결
  ㅇ 문자열 연결 반환
     - concat([s1,s2,...]) : 인수 문자열들을 연결해서 반환

JS 활용
   1. JS 활용   2. JS 문자열 활용   3. JS 수치 활용   4. JS 정규표현식   5. JS 웹 출력   6. 문자열 템플릿  


Copyrightⓒ written by 차재복 (Cha Jae Bok)               기술용어해설 후원
"본 웹사이트 내 모든 저작물은 원출처를 밝히는 한 자유롭게 사용(상업화포함) 가능합니다"