JavaScript

[JavaScript] 문자열에서 특정한 문자 찾고 문자 추출하기.

SangRok Jung 2022. 4. 14. 21:04
반응형

▶ String.prototype.indexOf()

indexOf()

String 객체에서 주어진 값과 일치하는 첫 번째 인덱스를 반환한다. 일치하는 값이 없으면 -1을 반환한다.

구문

str.indexOf(searchValue[, fromIndex])
           (찾을 문자, [시작할 위치 인덱스])

 

 

 

 

▶ String.prototype.substring()

substring()

string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.

사용방법 

str.substring(indexStart[, indexEnd])

인자값

  • indexStart 반환문자열의 시작 인덱스. 
  • indexEnd옵션.  반환문자열의 마지막 인덱스 (포함하지 않음.) 값이 없을시 문자열 끝의 인덱스로 설정.

 

 

문제

아래 문자열에서 id, passwd, email을 찾는 함수를 만들고 이를 Object literal로 만드시오.
const url = 'http://www.test.com/?id=hgd&passwd=himan&email=hgd@test.com'

 

해법

 

<body>
    <script>
    //아래 문자열에서 id, passwd, email을 찾고 이를 Object litera로 만드시오.
        const url = 'http://www.test.com/?id=hgd&passwd=himan&email=hgd@test.com'

        function getParm(str, val){
            let start = 0;
            let end = 0;
            let ans;
            let text = (val + '=');
            console.log(text)
            

            //시작점
            start = str.indexOf(text) + text.length;

            //끝점
            end = str.indexOf('&', start);

            //출력
            if (end === -1)
            {
                ans = str.substring(start)
                
            }
            else
            {
                end = str.indexOf('&', start);
                ans = str.substring(start, end)
                
            }    
            return ans   
        
        }

        const account = {}

        account.id = getParm(url, 'id')
        account.pass = getParm(url, 'passwd')
        account.email = getParm(url, 'email')

        console.log(account)

    </script>
</body>

 

반응형