231024_TIL

고병옥·2023년 10월 24일
1

오늘은 간단한 알고리즘문제에서 실패를함.

function solution(new_id) {
var answer = '';
// 실수문법
// new_id = String.lower(new_id)..??
new_id = new_id.toLowerCase();

new_id = new_id.replace(/[^a-z0-9\-\_\.]/g,'');


// 실수문법
//new_id = new_id.replaceAll('[\.]*', '.')
new_id = new_id.replaceAll(/[\.]+/g, '.');


if(new_id.startsWith('.')){
    if(new_id.length == 1){
        new_id = '';
    }
    else{
        new_id = new_id.substr(1, new_id.length-1);    
    }
}
if(new_id.endsWith('.')){
    if(new_id.length == 1){
        new_id = '';
    }
    else{
        new_id = new_id.substr(0, new_id.length-1);
    }
}

if(new_id == ''){
    new_id = 'a';
}

if(new_id.length >= 16){
    new_id = new_id.substr(0, 15);
    if(new_id.endsWith('.')){
        new_id = new_id.substr(0, new_id.length-1);
    }
}

if(new_id.length <= 2){
    var lastChar = new_id.substr(new_id.length-1, 1);
    while(new_id.length < 3){
        new_id = new_id + lastChar;
    }
}
   

answer = new_id;

return answer;

}

우선.. 아이디벨리데이션을 정규표현식으로 처리하고싶었으나,
해당문법을 정확히 몰라서 찾아보고 하느라 시간이 오래걸림.

2단계 newid에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(), 마침표(.)를 제외한 모든 문자를 제거합니다.

-> new_id = new_id.replace(/[^a-z0-9-_.]/g,'');

답안을보니 \w로 처리했던데, 이것까지는 모르게될거같음.. 나열식이라도 사용법을 기억해두어야 겠음.

그리고 영화검색 상세페이지를 만들게 되었는데...

해당 데이터를 가져오기위한 API들 학습.

영화프리뷰
https://api.themoviedb.org/3/movie/{movie_id}/videos

영화이미지
https://api.themoviedb.org/3/movie/{movie_id}/images

영화상세
https://api.themoviedb.org/3/movie/{movie_id}

profile
천천히 그리고 단단하게

0개의 댓글