Problem
- Complete the function so that it returns the url with anything after the anchor (#) removed.
- anchor(#)를 제거하고, url을 반환한다.
Solution 01
function removeUrlAnchor(url) {
let result = '';
for (let i = 0; i < url.length; i++) {
if (url[i] === '#') return result;
result += url[i];
}
return result;
}
removeUrlAnchor('dubbsong.github.io'); // dubbsong.github.io
removeUrlAnchor('dubbsong.github.io#about'); // dubbsong.github.io
Solution 02
function removeUrlAnchor(url) {
return url.split('#')[0];
}
removeUrlAnchor('dubbsong.github.io'); // dubbsong.github.io
removeUrlAnchor('dubbsong.github.io#about'); // dubbsong.github.io
split()
: 문자열을 부분 문자열로 분할하고, 새 배열로 반환한다.
Solution 03
function removeUrlAnchor(url) {
return url.replace(/#.*/gi, '');
}
removeUrlAnchor('dubbsong.github.io'); // dubbsong.github.io
removeUrlAnchor('dubbsong.github.io#about'); // dubbsong.github.io
replace()
: 대응되는 문자열을 찾아 다른 문자열로 치환한다.
.
: 개행 문자를 제외한 모든 문자와 대응
*
: 0회 이상 연속으로 반복되는 부분과 대응
g
: 전역 검색
i
: 대소문자 구분 없는 검색
Solution 04
function removeUrlAnchor(url) {
return url.replace(/#.+$/, '');
}
removeUrlAnchor('dubbsong.github.io'); // dubbsong.github.io
removeUrlAnchor('dubbsong.github.io#about'); // dubbsong.github.io
+
: 1회 이상 연속으로 반복되는 부분에 대응
$
: 입력의 끝 부분에 대응