오늘은 간단한 알고리즘문제에서 실패를함.
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