JavaScript에서 문자열 포함 여부 확인하기
JavaScript에서 문자열 안에 특정 텍스트가 존재하는지 확인하려면 search() 메서드를 사용할 수 있습니다. 이 메서드는 문자열 내에서 지정한 정규식 또는 검색 패턴과 일치하는 부분을 찾아, 일치하는 위치의 인덱스를 반환합니다.
만약 일치하는 텍스트를 찾지 못하면 -1을 반환하기 때문에, 반환값이 -1인지 아닌지를 비교하여 문자열 포함 여부를 판단할 수 있습니다.
search() 메서드 사용 예제
다음 코드는 "Tutorialspoint: Free Video Tutorials"라는 문자열에 "Free Video"라는 텍스트가 포함되어 있는지 확인하는 예제입니다.
<html>
<head>
<title>JavaScript String search() Method</title>
</head>
<body>
<script>
var re = "Free Video";
var str = "Tutorialspoint: Free Video Tutorials";
if ( str.search(re) == -1 ) {
document.write("Does not contain" );
} else {
document.write("Contains" );
}
</script>
</body>
</html>
실행 결과
위 코드를 실행하면 문자열에 "Free Video"가 포함되어 있으므로 다음과 같이 출력됩니다.
Contains
참고: includes() 메서드 활용
ES6(ES2015)부터는 더욱 직관적인 includes() 메서드를 사용할 수도 있습니다. 이 메서드는 문자열이 특정 텍스트를 포함하고 있으면 true, 그렇지 않으면 false를 반환합니다.
var str = "Tutorialspoint: Free Video Tutorials";
console.log(str.includes("Free Video")); // true
console.log(str.includes("Paid Video")); // false
단순히 포함 여부만 확인할 때는 가독성이 좋은 includes()를, 일치하는 위치(인덱스)가 필요하거나 정규식 기반의 복잡한 검색이 필요할 때는 search()를 사용하는 것이 좋습니다.