1. 개요
문자열은 JavaScript의 거의 모든 곳에 있습니다. 사용자 입력 데이터를 처리할 때, DOM 객체의 속성을 읽거나 설정할 때, 쿠키를 실행할 때 등이 있습니다. JavaScript의 핵심 부분은 문자열 분할, 문자열 대소문자 변경, 하위 문자열 작업 등과 같은 일반적인 문자열 작업을 위한 속성 및 메서드 집합을 제공합니다.
대부분의 최신 브라우저는 수많은 문자열 조작 작업을 크게 단순화하지만 다소 가파른 학습 곡선을 극복해야 하기 때문에 정규 표현식의 강력한 이점을 활용할 수도 있습니다. 여기서는 주로 문자열 자체에 대한 몇 가지 작업을 소개합니다. 정규식은 향후 에세이에서 다루겠습니다.
2. 문자열 생성
문자열을 생성하는 방법에는 여러 가지가 있습니다. 가장 간단한 방법은 문자열 변수에 할당할 수 있는 문자 집합을 따옴표로 묶는 것입니다.
var myStr = "Hello, String!";
큰따옴표나 작은따옴표를 사용하여 문자열을 묶을 수 있지만 문자열을 구분하는 따옴표 쌍은 동일해야 하며 혼합할 수 없다는 점에 유의하세요.
var myString = "Fluffy is a Pretty cat.';과 같은 선언은 불법입니다.
두 종류의 따옴표 사용을 허용하여 특정 작업을 간단하게 만듭니다(예: 하나를 다른 하나에 삽입).
위 스크립트에서 여러 개의 문자열을 생성했지만, 본질적으로는 실제 문자열 객체가 아니고, 정확히 말하면 문자열 유형의 값입니다. 문자열 개체를 생성하려면 다음 문을 사용할 수 있습니다. var strObj = new String("Hello, String!");
typeof 연산자를 사용하면 위의 myStr 유형이 문자열이고 strObj 유형임을 알 수 있습니다. 개체입니다.
문자열의 길이를 알고 싶다면 해당 길이 속성인 string.length를 사용하세요.
문자열의 지정된 위치에 있는 문자를 가져오는 메서드: string.charAt(index);
3. 문자열 연결
문제:
두 개 이상의 문자열을 하나의 큰 문자열로 연결하기
해결책:
매우 간단합니다. " "를 사용하여 두 문자열을 "추가"하면 됩니다.
String 객체는 " "와 동일한 기능을 수행하는 concat() 메서드도 제공합니다.
string.concat(value1, value2, ...)
그러나 concat() 메서드는 분명히 그렇지 않습니다. 직관적이고 간결합니다.
4. 문자열의 하위 문자열에 액세스
질문:
문자열 일부의 복사본을 얻습니다.
해결책:
substring() 또는 Slice() 메서드(NN4, IE4)를 사용하세요. 구체적인 사용법은 아래에 설명되어 있습니다.
substring()의 프로토타입은 다음과 같습니다. string.substring(from, to)
from의 첫 번째 매개변수는 원래 문자열에서 하위 문자열의 시작 위치를 지정합니다(0 기반 인덱스). to는 선택 사항입니다. . 원본 문자열(0 기반 인덱스)에서 하위 문자열의 끝 위치를 지정하며 일반적으로 from보다 커야 하며, 생략하면 하위 문자열이 끝 부분까지 이동합니다.
from 매개변수가 to 매개변수보다 실수로 커지면 어떻게 되나요? JavaScript는 하위 문자열의 시작 및 끝 위치를 자동으로 조정합니다. 즉, substring()은 항상 두 매개변수 중 더 작은 매개변수에서 시작하여 더 큰 매개변수로 끝납니다. 그러나 시작 위치의 문자는 포함되지만 끝 위치의 문자는 포함되지 않습니다.
Slice()의 프로토타입은 string.slice(start, end)
매개변수 start는 하위 문자열의 시작 위치를 나타냅니다. 음수인 경우 마지막부터의 숫자로 이해될 수 있습니다. 예를 들어, -3은 맨 아래에서 세 번째 시작을 의미합니다. 매개변수 end는 끝 위치를 나타냅니다. start와 마찬가지로 음수일 수도 있으며 그 의미는 끝에서 두 번째 위치의 끝을 나타냅니다. Slice()의 매개변수는 음수일 수 있으므로 substring()보다 더 유연하지만 덜 허용됩니다. start가 end보다 크면 빈 문자열이 반환됩니다(예는 생략됨).
또 다른 메소드는 substr()이며, 프로토타입은 다음과 같습니다. string.substr(start, length)
프로토타입에서 해당 매개변수의 의미를 볼 수 있습니다. start는 시작 위치를 나타내고 length는 하위 문자열을 나타냅니다. 길이. JavaScript 표준에서는 이 방법의 사용을 권장하지 않습니다.
5. 문자열 대소문자 변환
문제:
도시와 같은 사용자 입력 정보를 받는 텍스트 상자가 있으며 그러면 도시에 따라 자연스럽게 다른 처리가 수행됩니다. 이때 사용되므로 비교하기 전에 대소 문자 변환을 수행하는 것이 가장 좋습니다. 그러면 변환 후 상황만 고려하거나 페이지에서 데이터를 수집한 다음 데이터를 데이터베이스에 저장하면 됩니다. 데이터베이스 대문자만 허용되는 경우가 있습니다. 이 경우 문자열의 대소문자 변환을 고려해야 합니다.
해결책:
toLowerCase() 및 toUpperCase() 메서드 사용:
주의해야 할 것이 하나 있는데, 바로 컴퓨터의 지역 설정입니다. "<" 및 ">"를 사용하여 문자열을 비교하면 JavaScript는 이를 유니코드로 비교하지만 분명히 웹을 탐색하는 사람들은 텍스트를 유니코드로 읽지 않습니다. 예를 들어 스페인어에서는 "ch "는 "c"와 "d" 사이의 문자로 정렬됩니다. localeCompare()는 기본 로케일의 문자 조합을 사용하는 방법을 제공합니다.
7. 문자열 검색
질문:
문자열에 다른 문자열이 포함되어 있는지 확인합니다.
해결책:
문자열의 indexOf() 메서드 사용:
strObj.indexOf(subString[, startIndex])
strObj는 판단할 문자열이고, subString은 strObj에서 찾을 하위 문자열입니다. 문자열, startIndex는 선택 사항이며 검색 시작 위치를 나타냅니다(0 기반 인덱스). startIndex가 생략되면 strObj의 처음부터 검색하고 startIndex가 0보다 작으면 startIndex가 strObj보다 크면 0부터 시작합니다. 최대 인덱스를 검색한 후 시작부터 최대 인덱스까지 검색합니다.
indexOf()는 strObj에서 subString의 시작 위치를 반환하고, 찾을 수 없으면 -1을 반환합니다. 스크립트에서는 다음과 같이 사용할 수 있습니다.
8. 유니코드 값과 문자열의 문자 간 변환
질문:
문자의 유니코드 인코딩 값을 구하고 그 반대의 경우도 마찬가지입니다.
해결책:
문자의 유니코드 인코딩을 얻으려면 다음과 같이 정의된 string.charCodeAt(index) 메서드를 사용할 수 있습니다.
strObj.charCodeAt(index)
인덱스는 지정된 것입니다. strObj 개체 위치(0 기반 인덱스)에 문자가 있으면 반환 값은 0에서 65535 사이의 16비트 정수입니다. 예:
var strObj = "ABCDEFG";
var code = strObj.charCodeAt(2) // 문자 'C'의 유니코드 값은 67입니다
index로 지정한 인덱스에 문자가 없으면 반환값은 NaN입니다.
유니코드 인코딩을 문자로 변환하려면 String.fromCharCode() 메서드를 사용하세요. 이는 String 개체의 "정적 메서드"이므로 사용하기 전에 문자열 인스턴스를 만들 필요가 없습니다.
String.fromCharCode(c1, c2, ...)
0개 이상의 정수를 허용하고 각 매개변수로 지정된 문자가 포함된 문자열을 반환합니다. 예:
참고 자료:
JavaScript And Dhtml Cookbook(Oreilly) ;
JavaScript-최종 가이드(4판);