자바스크립트에서 문자열에서 문자 또는 문자열의 위치를 검색 위해서는 indexOf와 search 함수를 사용하고, 문자열의 뒤에서 부터 문자열을 검색할 때는 lastIndexOf 함수를 사용하면 된다.
|
대부분 문자열을 찾을 때는 indexOf 함수를 많이 사용하며, 정규식을 사용해야 할 경우 search 함수를 사용하면 된다. 문자열을 찾으면 문자열의 첫 번째 위치를 반환하고 찾지 못하면 -1을 반환한다.
indexOf 함수로 문자열 찾기
var str = 'HTML,CSS,JavaScript';
var pos1 = str.indexOf('JavaScript');
// 결과 : 9
var pos2 = str.indexOf('Kotlin');
// 결과 : -1
indexOf("찾을 문자열")
찾은 문자열의 시작 위치를 반환한다. 찾을 문자열이 없을 경우 -1을 반환한다.
대소문자 구분 없이 검색하기 위해서는 문자열을 대문자나 소문자로 변환 후 검색하면 된다.
예) str.toLowerCase().indexOf('javascript');
var str = 'HTML,CSS,JavaScript';
var pos = str.indexOf(',');
// 결과 : 4
찾을 문자열이 여러 개인 경우 첫 번째 찾은 문자열의 위치를 반환한다.
찾을 문자 쉼표(',')가 2개이지만 첫 번째 찾은 쉼표의 위치를 반환했다.
var str = 'HTML,CSS,JavaScript';
var pos1 = str.indexOf(',', 5);
// 결과 : 8
var pos2 = str.indexOf(',', str.indexOf(',') + 1);
// 결과 : 8
indexOf("찾을 문자열", "시작 위치")
찾을 위치를 두 번째 인자에 부여하면 시작 위치부터 문자열을 찾는다.
위의 예제는 문자열의 5번째 문자부터 쉼표를 찾는다.
search 함수로 문자열 찾기
var str = 'HTML,CSS,JavaScript';
var pos1 = str.search('JavaScript');
// 결과 : 9
var pos2 = str.search('Kotlin');
// 결과 : -1
search("찾을 문자열")
search 함수는 indexOf 함수와 동일하게 문자열을 찾을 수 있다.
search 함수는 문자열을 찾을 때 시작 위치는 지정할 수는 없다.
/* 한글 찾기 */
var str = 'HTML,CSS,자바스크립트';
var pos = str.search(/[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/);
// 결과 : 9
/* 대소문자 구분없이 검색 */
var str = 'HTML,CSS,JavaScript';
var pos = str.search(/javascript/gi);
// 결과 : 9
search("정규식")
search 함수는 정규식을 사용하여 문자열을 찾을 수 있다.
lastIndexOf 함수로 뒤에서부터 문자열 찾기
var str = 'HTML,CSS,JavaScript';
var pos = str.lastIndexOf(',');
// 결과 : 8
lastIndexOf("찾을 문자열") 또는 lastIndexOf("찾을 문자열", "시작 위치")
lastIndexOf 함수는 indexOf 함수와 기본적인 사용법은 비슷하다.