상세 컨텐츠

본문 제목

자바스크립트 substring, substr, indexOf, lastIndexOf (javascript 문자열 자르기, 뒤에서 자르기, 찾기)

JavaScript & HTML

by husks 2017. 11. 14. 18:26

본문

반응형

 

일단 자바스크립트에서 문자열을 자르기 위해서는 문자열의 위치번호(?) 를 알아야 합니다.

 

아래 그림을 참고 하세요.

위 그림의 숫자는 각 문자의 위치 번호이며 자바스크립트는 문자열의 시작위치를 0부터 순차적으로 인식 합니다.

 

위 문자열에서 tistory 의 위치는 9번에서 16번사이 라고 말할 수 있습니다.

 

 

huskdoll.tistory.com 문자열에서 tistory 부분을 substring 과 substr 을 이용하여 추출하는 방식을 알려 드리겠습니다.

 

 

 

substring([시작위치], [종료위치]);

 

substring 를 이용하여 자르면 substring( 9, 16 )

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <script>
      var str = 'huskdoll.tistory.com';
      document.write( '<p>'+str+'</p>' );
      document.write( '<p>str.substring( 9, 16 ) : ' + str.substring916 ) + '</p>' );
    </script>
  </body>
</html>

 

 

 

substr([시작위치], [길이]);

 

substr 를 이용하여 자르면 substr( 9, 7 )

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <script>
      var str = 'huskdoll.tistory.com';
      document.write( '<p>'+str+'</p>' );
      document.write( '<p>str.substr( 9, 7 ) : ' + str.substr97 ) + '</p>' );
    </script>
  </body>
</html>

 

 

위에서 보셨듯이 substring는 추출하려는 문자열의 시작위치와 종료위치를 입력하여 추출하는 방식입니다.

 

substr 같은 경우는 시작위치를 입력하고 그 시작위치부터 지정한 문자열 길이만큼 추출하는 방식입니다.

 

 

* 추가로 뒤에서 자르는 방식은 다음과 같습니다.

 

뒤부터 자르는 방법 : substr( str.length-3, 3 )

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <script>
      var str = 'huskdoll.tistory.com';
      document.write( '<p>'+str+'</p>' );
      document.write( '<p>str.substr( str.length-3, 3 ) : ' + str.substr( str.length-33 ) + '</p>' );
    </script>
  </body>
</html>

 

 

 

 

문자열의 길이에서 자르려는 수의 문자열 위치를 구하고 그 수 만큼 잘라주면 됩니다.

 

위 함수들과 같이 많이 쓰이는 함수는 indexOflastIndexOf 입니다.

 

두개 모두 특정 문자열의 시작위치를 구하는 함수 입니다.

 

indexOf 는 앞에서 부터 찾고 lastIndexOf 는 뒤에서 찾는것이 차이점 입니다.

 

huskdoll.tistory.com 문자열에서 . (마침표) 부분의 위치를 indexOflastIndexOf 을 이용하여 추출하는 방식을 알려 드리겠습니다.

 

 

indexOf([검색 문자열]);

 

str.indexOf( "." ) 의 결과는 8

 

 

lastIndexOf([검색 문자열]);

 

str.lastIndexOf( "." ) 의 결과는 16

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <script>
      var str = 'huskdoll.tistory.com';
      document.write( '<p>'+str+'</p>' );
      document.write( '<p>str.indexOf( "." ) : ' + str.indexOf"." ) + '</p>' );
      document.write( '<p>str.lastIndexOf( "." ) : ' + str.lastIndexOf( "." ) + '</p>' );
    </script>
  </body>
</html>
 

 

 

위에서 보셨듯이  indexOf는 문자열의 앞에서 부터 검색어를 찾아 시작위치를 알려줍니다.

 

lastIndexOf 는 문자열의 뒤에서 부터 검색어를 찾아 시작위치를 알려줍니다.

 

* 찾는 검색어가 없으면 -1 을 리턴합니다.

 

 

* 추가로 앞과 끝의 마침표 사이의 문자열을 추출해보도록 하겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<!doctype html>
<html lang="ko">
  <head>
    <meta charset="utf-8">
    <title>Test</title>
  </head>
  <body>
    <script>
      var str = 'huskdoll.tistory.com';
      document.write( '<p>'+str+'</p>' );
      document.write( '<p>마침표 사이 문자열: ' + str.substring(str.indexOf(".")+1, str.lastIndexOf(".")) + '</p>' );
    </script>
  </body>
</html>
 

 

 

* str.indexOf(".")+1 를 해준이유는 검색어의 시작위치이기 때문에 마침표 다음 위치를 추출하기 위해 +1 해주었습니다.

 

 

 

자주 쓰이는 함수인데 제가 블로그에 정리한게 없어서 정리의 의미로 작성 하였습니다.

 

반응형

관련글 더보기

댓글 영역