JavaScript String
1. String Constructor
String 객체는 String() 생성자 함수를 통해 생성할 수 있다. 이때 전달된 인자는 모두 문자열로 변환된다.
new를 넣지 않는다면 그냥 문자로만 변환한다.
1 2 3 4 5 6 7 8 var x = 'Lee' ;var y = new String ('Lee' );console .log(x == y); console .log(x === y); console .log(typeof x); console .log(typeof y);
2. String Property 2.1 String.length
1 2 3 4 5 var str = 'Hello' ;console .log(str.length); str = '안녕하세요' ; console .log(str.length);
3. String Method 3.1 String.prototype.charAt()
매개변수로 전달한 index 번호에 해당하는 위치의 문자를 반환한다.
index 번호는 0 ~ (문자열 길이 - 1) 사이의 정수이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 str.charAt(index) var str = 'Hello' ;console .log(str.charAt(0 )); console .log(str.charAt(1 )); console .log(str.charAt(2 )); console .log(str.charAt(3 )); console .log(str.charAt(4 )); console .log(str.charAt(5 )); for (var i = 0 ; i < str.length; i++) { console .log(str.charAt(i)); }
3.2 String.prototype.indexOf()
문자열 내에 매개변수로 전달된 문자 또는 문자열이 처음 발견된 곳의 index를 반환한다.
발견하지 못한 경우 -1을 반환한다.
1 2 3 4 5 6 7 8 9 str.indexOf(searchValue[, fromIndex]) var str = 'Hello World' ;console .log(str.indexOf('l' )); console .log(str.indexOf('or' )); console .log(str.indexOf('or' , 8 ));
3.3 String.prototype.lastIndexOf()
1 2 3 4 5 6 7 8 9 10 11 var str = 'Hello World' ;console .log(str.lastIndexOf('World' )); console .log(str.lastIndexOf('l' )); console .log(str.lastIndexOf('o' , 5 )); console .log(str.lastIndexOf('o' , 8 )); console .log(str.lastIndexOf('l' , 10 )); console .log(str.lastIndexOf('H' , 0 )); console .log(str.lastIndexOf('W' , 5 )); console .log(str.lastIndexOf('x' , 8 ));
3.4 String.prototype.replace()
첫번째 인수로 전달된 문자열 또는 정규표현식을 대상 문자열에서 검색하여 두번째 인수로 전달된 문자열로 대체한다.
검색된 문자열이 복수 존재할 경우 첫번째로 검색된 문자열만 대체된다.
기본자료형이라서 원본은 변경되지 않는다.
1 2 3 4 5 6 7 8 9 10 var str = 'Hello Hello' ;var replacedStr = str.replace('Hello' , 'Lee' );console .log(replacedStr); console .log(str); replacedStr = str.replace(/hello/gi , 'Lee' ); console .log(replacedStr); console .log(str);
/hello/의 패턴을 검색하는데 (g반복해서 계속) (i 대소문자를 구분하지 말라)해서 찾는다.
3.5 String.prototype.split()
첫번째 인수로 전달된 문자열 또는 정규표현식을 대상 문자열에서 검색하여 문자열을 구분한 후 분리된 각 문자열로 이루어진 배열을 반환한다
.
인수가 없는 경우, 대상 문자열 전체를 단일 요소로 하는 배열을 반환한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 str.split([separator[, limit]]) var str = 'How are you doing?' ;var splitStr = str.split(' ' );console .log(splitStr); splitStr = str.split(); console .log(splitStr); splitStr = str.split('' ); console .log(splitStr); splitStr = str.split(' ' , 3 ); console .log(splitStr); splitStr = str.split('o' ); console .log(splitStr);
3.6 String.prototype.substring()
첫번째 인수로 전달된 index에 해당하는 문자부터 두번째 인수로 전달된 index에 해당하는 문자의 바로 이전 문자까지
를 모두 반환한다. 이때 첫번째 인수 < 두번째 인수의 관계가 성립된다.
첫번째 인수 > 두번째 인수 : 두 인수는 교환된다. ex) 4,1이면 1,4로 변경된다.
두번째 인수가 생략된 경우 : 해당 문자열의 끝까지 반환한다.
인수 < 0 또는 NaN인 경우 : 0으로 취급된다. ex) -2를 주면 전체를 애기한다.
인수 > 문자열의 길이(str.length) : 인수는 문자열의 길이(str.length)으로 취급된다. 빈문자를 출력한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 var str = 'Hello World' ; var res = str.substring(1 , 4 );console .log(res); res = str.substring(4 , 1 ); console .log(res); res = str.substring(4 ); console .log(res); res = str.substring(-2 ); console .log(res); res = str.substring(1 , 12 ); console .log(res); res = str.substring(11 ); console .log(res); res = str.substring(20 ); console .log(res); res = str.substring(0 , str.indexOf(' ' )); console .log(res); res = str.substring(str.indexOf(' ' ) + 1 , str.length); console .log(res);
3.7 String.prototype.toLowerCase()
3.8 String.prototype.toUpperCase()
3.9 String.prototype.trim()
문자열 양쪽 끝에 있는 공백 문자를 제거한 문자열을 반환한다.
1 2 3 4 var str = ' foo ' ;var trimmedStr = str.trim();console .log(trimmedStr);console .log(str);
이때 해당 문자열 자신은 변경되지 않는다
. 문자열은 변경 불가능한 값(immutable value)이기 때문이다.