function solution(new_id) {
let str = new_id.toLowerCase();
const reg2 = /[^0-9a-z\-_\.]/g;
str = str.replace(reg2, "");
const reg3 = /\.+/g;
str = str.replace(reg3,".");
const reg4 = /^[\.]|[\.]$/g;
str = str.replace(reg4, "");
if(!str) str = "a";
const reg6 = /[\.]$/g;
str = str.substring(0, 15).replace(reg6, "");
const len = str.length;
if(len <= 2){
for(let i = 0; i < 3 - len; i++){
str += str.substring(str.length-1);
}
}
return str;
}
function solution(new_id) {
let str = new_id.toLowerCase()
.replace(/[^\w-_.]/g, "")
.replace( /\.+/g,".")
.replace(/^\.|\.$/g, "")
.replace(/^$/g, "a")
.substring(0, 15).replace(/\.$/g, "");
return str.padEnd(3, str[str.length-1]);
}
처음 풀이가 꽤 괜찮다고 생각했는데, 막상 정답 코드를 보니 chaining을 참 잘 써서 푼 코드가 많아서 반성했다. 정규식도 바로바로 나오지 않고 결국 검색해서 풀었다.. 정규식 공부도 다시 해야 할 것 같다.
정답 코드를 보면서 padEnd
라는 함수가 있다는 것을 알게 되었다. 원하는 길이만큼 해당 문자열로 채워주는 문자열 함수다.