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,...]) : 인수 문자열들을 연결해서 반환